Как вы можете видеть на рисунке ниже, при обновлении узлов до новой версии Kubernetes поды на каждом узле воссоздаются на новом узле с более новой версией Kubernetes.
Однако кажется, что старые модули уничтожаются (прекращаются), не дожидаясь, пока новые модули перейдут в состояние готовности, приводящий к простою поскольку новые модули все еще находятся в состоянии ContainerCreating.
Есть ли этому объяснение, или я что-то не так делаю?
Когда узел обновляется, GKE сначала очищает поды от узла перед удалением виртуальной машины и удалением узла из кластера. Подробно объясняется процесс завершения работы модуля. Вот и вы должны понимать, что этот процесс начинается перед новые модули создаются, планируются или запускаются.
Если у вас есть развертывание и вы хотите поддерживать определенное количество реплик в процессе обновления узла, вам следует настроить бюджеты на разрушение капсул, с помощью которого вы можете гарантировать, что процесс обновления узла будет проходить достаточно медленно, чтобы поддерживать работу достаточного количества контейнеров для вашей службы, чтобы обрабатывать трафик без простоев.