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 для отката.