advanced

Deployment

Управляйте реплицированными stateless podами: история rollout, rolling update, rollback и reconciliation желаемого состояния.

Deployment управляет желаемым числом реплик, ReplicaSet, rolling update, историей rollback и reconciliation для stateless нагрузок — web API, SSR и т.п.

					apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
        - name: api
          image: my-api:1.2.0
          readinessProbe:
            httpGet:
              path: /health/ready
              port: 3000
				

Rollout должен опираться на readiness probes, чтобы трафик не шёл на инстансы, не готовые обслуживать запросы.

На интервью: `maxUnavailable`, `maxSurge`, image pull policy, labels/selectors, обнаружение провала rollout и rollback.

Типовые ошибки: смена selector «осиротляет» pod'ы; rollout без readiness направляет трафик слишком рано.

Компромисс — скорость rollout против безопасности при частичных сбоях.

Чеклист:

  • Стабильные labels и selectors.
  • Явная стратегия rollout.
  • Readiness gates для трафика.
  • История rollout для отката.