В инструкции описан пример настройки автоматического перезапуска Deployment при каждом изменении Secret. Аналогично можно настроить перезапуск и для других рабочих нагрузок, например StatefulSet или DaemonSet.
У вас должен быть создан кластер Managed Kubernetes и группа узлов.
В кластер установите плагин Reloader.
Проверьте, что Reloader установлен корректно:
kubectl get pods -n reloader
Под должен быть в статусе «Running».
Выполните команду:
kubectl create secret generic cloudru-app-secret --from-literal=API_KEY="example-key"
Проверьте созданный Secret:
kubectl get secrets/cloudru-app-secret -o yaml
Чтобы Deployment реагировал на изменения Secret, нужно добавить аннотацию reloader.stakater.com/auto: "true" в YAML-файл вашего Deployment.
Создайте файл cloudru-deployment.yaml и сохраните следующий манифест:
apiVersion: apps/v1kind: Deploymentmetadata:name: cloudru-appannotations:reloader.stakater.com/auto: "true"spec:template:metadata:labels:app: cloudru-appspec:containers:- name: appimage: emk8s.cr.cloud.ru/nginx:latestenvFrom:- secretRef:name: cloudru-app-secret
Где cloudru-app-secret — название секрета, созданного на шаге 1.
В терминале или PowerShell выполните команду:
kubectl apply -f cloudru-deployment.yaml
Убедитесь, что Deployment развернут и работает:
kubectl get deploy cloudru-appkubectl get pods
Измените значение секрета:
kubectl patch secret cloudru-app-secret -p '{"data":{"API_KEY":"new-api-key"}}'
Через 1–2 минуты после изменения секрета вы увидите, что поды перезапустились автоматически.
Проверьте статус подов:
kubectl get pods
Вы должны увидеть, что контейнеры были перезапущены и теперь используют новое значение секрета.