[CKA] Deployment 생성과 운영
Deployment 생성, scale, rolling update, 변경 이력과 rollback을 실습합니다.
생성과 scale
kubectl create deployment webserver --image=nginx:1.14 --replicas=2 \
--dry-run=client -o yaml > webserver.yaml
Pod label을 바꾼다면 Deployment selector와 Pod template label이 일치해야 합니다.
spec:
replicas: 2
selector:
matchLabels:
app_env_stage: dev
template:
metadata:
labels:
app_env_stage: dev
kubectl apply -f webserver.yaml
kubectl scale deployment webserver --replicas=3
kubectl get pods --show-labels
rolling update와 rollback
kubectl set image deployment/nginx-app nginx=nginx:1.11.13-alpine
kubectl annotate deployment/nginx-app \
kubernetes.io/change-cause='update nginx image to 1.11.13-alpine'
kubectl rollout status deployment/nginx-app
kubectl rollout history deployment/nginx-app
직전 revision이나 지정한 revision으로 되돌릴 수 있습니다.
kubectl rollout undo deployment/nginx-app
kubectl rollout undo deployment/nginx-app --to-revision=1
--record는 deprecated 되었으므로 변경 사유는 annotation으로 남깁니다. rollback 전에는 history에 되돌릴 revision이 실제로 있는지 확인합니다.