В чем причина, если мы запускаем сервисы с ReplicaSet, меняем версию Nginx и видим, что поды не перезапущены
Причина заключается в том, что изменение версии Nginx не привело к изменению метаданных подов, и контроллер ReplicaSet не идентифицировал необходимость их перезапуска.
Когда мы изменяем версию образа в нашем ReplicaSet, Kubernetes не автоматически обновляет метаданные пода, такие как PodTemplateHash или PodSpec, что ведет к тому, что контроллер ReplicaSet не обнаруживает изменения и не запускает новые поды. Для того чтобы принудительно обновить поды, мы можем внести изменения в сам ReplicaSet, например, добавить аннотацию или метку к шаблону пода, что приведет к изменению PodTemplateHash и перезапуску подов.
Пример. Предположим, у нас есть ReplicaSet с меткой app=nginx и мы хотим обновить версию образа Nginx. Если мы просто обновим версию образа в шаблоне ReplicaSet, поды не перезапустятся. Для того чтобы это исправить, мы можем добавить аннотацию к шаблону пода, например:
После этого Kubernetes обнаружит изменение в шаблоне пода и перезапустит поды, используя актуальную версию Nginx
Отметьте свой прогресс