Удалённый вручную под сразу появился снова
В кластере нет ни ArgoCD, ни других GitOps-инструментов, приложение выкатывается Helm-чартом как Deployment с тремя репликами. Дежурный решил убрать «зависший» под:
$ kubectl delete pod api-7d9f4c6b58-x2kql
pod "api-7d9f4c6b58-x2kql" deleted
$ kubectl get pods -l app=api
api-7d9f4c6b58-x2kql 1/1 Terminating 0 14m
api-7d9f4c6b58-p8mzr 1/1 Running 0 3s
Под немедленно заменился новым.
Почему так произошло?
- Kubernetes восстановил под из кэша kubelet, через несколько минут он исчезнет сам
- Сработал горизонтальный автоскейлер и добавил реплику взамен удалённой
- ReplicaSet, созданный Deployment'ом, поддерживает заданное число реплик и создаёт новый под вместо удалённого
- Под пересоздал Helm: релиз хранит состояние всех объектов и при любом расхождении с ним возвращает удалённые вручную ресурсы обратно в кластер
