Ответ
Deployment в OpenShift — это объект, управляющий жизненным циклом экземпляров приложения (подов) в контейнерах. Он обеспечивает декларативное обновление и масштабирование.
Ключевые объекты и стратегии:
- DeploymentConfig (устаревший, специфичный для OpenShift): Имеет встроенные триггеры (ImageChange, ConfigChange) и стратегии развертывания (Rolling, Recreate).
- Deployment (Kubernetes-стандарт): Рекомендуемый подход. Управляется через
ReplicaSet. Более портабелен. - Стратегии обновления:
- Rolling Update: Постепенная замена подов (по умолчанию). Гарантирует отсутствие простоя.
- Recreate: Все старые поды удаляются перед созданием новых. Приводит к простою.
Пример Deployment (Kubernetes-стиль):
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: app-container
image: registry.example.com/my-app:v1.0
ports:
- containerPort: 8080
Почему это важно: Deployment абстрагирует ручное управление подами, автоматизируя развертывание, откат (kubectl rollout undo) и масштабирование, что является основой CI/CD в OpenShift.