Что такое под (Pod), Deployment и Deployment Config в Kubernetes/OpenShift? В чём разница?
Ответ от нейросети
sobes.tech AI
В Kubernetes и OpenShift:
-
Pod — минимальная единица развертывания, которая содержит один или несколько контейнеров, работающих на одном хосте и разделяющих сеть и хранилище. Pod — это «оболочка» для контейнеров.
-
Deployment — контроллер, который управляет созданием и обновлением Pod'ов. Он обеспечивает декларативное управление состоянием приложения: сколько реплик должно быть, обновления без простоя, откат и т.д. Deployment следит, чтобы нужное количество Pod'ов всегда было запущено.
-
DeploymentConfig — аналог Deployment, но специфичный для OpenShift. Он расширяет возможности Deployment, добавляя дополнительные триггеры (например, на изменение образа контейнера), более гибкую стратегию обновления и интеграцию с OpenShift-пайплайнами.
Основные отличия:
- Pod — это непосредственно контейнеры.
- Deployment — стандартный Kubernetes-ресурс для управления жизненным циклом Pod'ов.
- DeploymentConfig — расширение OpenShift с дополнительными возможностями, отсутствующими в стандартном Deployment.
Пример: вы создаёте Deployment, который гарантирует, что всегда запущено 3 Pod'а с вашим приложением. Если вы обновляете образ, Deployment плавно обновит Pod'ы без простоя.