strategy: RollingUpdate
maxUnavailable
, maxSurge
로 제어maxSurge
: replica 수 대비 추가될 수 있는 Pod 수 or 비율 (기본값 25%)maxUnavailagle
: replica 수 대비 종료될 수 있는 구 버전 pod 수 or 비율. default 25%maxUnavailable: 0
이면 새 버전 pod 가 모두 올라온 후 구버전 pod 가 종료maxSurge
가 0이면 maxUnavilable
은 0 설정 불가 (pod 띄우지도 종료하지도 못하니까)apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 4
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app:1.1.0
strategy
type: Recreate
선언apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 4
strategy:
type: Recreate
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app-container
image: my-app:1.1.0
spec:
containers:
- name: my-app-container
image: my-app:1.2.0
kubectl apply -f my-deployment-definition.yml
kubectl set image deployment/my-deployment my-app-container=my-app:1.2.0
kubectl get deployments
kubectl rollout status
: 실시간 배포 상황 모니터링kubectl rollout status deployment/my-deployment
history
: Deployment revision 이력 확인kubectl rollout history deployment/my-deployment
kubectl rollout history deployment/my-deployment --revision=2
kubectl rollout undo deployment/my-deployment
kubectl rollout undo deployment/my-deployment --to-revision=<REVISION_NUMBER>