Rolling Updates and Rollback
•
새로운 롤아웃은 새로운 Deployment의 수정이 생기면 revison 2라는 형태로 생성된다.
이것은 변경을 추적할 수 있도록 도와주고 필요할 때 Deployment의 이전 버전으로 롤백할 때 유용하다.
Rollout and Versioning in a Deployment
•
처음 deployment를 만들면 rollout을 트리거 하고, 이 rollout은 revision 1을 만든다.
•
이후에 어플리케이션이 수정되어 update가 일어나면 새로운 rollout이 트리거되고, 이 rollout이 revision 2를 만든다.
Rollout commands
•
rollout Status 조회
$ kubectl rollout status deployment/myapp-deployment
Plain Text
복사
•
To see the history and revisions
$ kubectl rollout history deployment/myapp-deployment
Plain Text
복사
Deployment Strategies
•
2가지 deployment 전략
1.
Recreate
2.
RollingUpdate (Default Strategy)
kubectl apply
•
deployment 업데이트
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
labels:
app: nginx
spec:
template:
metadata:
name: myap-pod
labels:
app: myapp
type: front-end
spec:
containers:
- name: nginx-container
image: nginx:1.7.1
replicas: 3
selector:
matchLabels:
type: front-end
Plain Text
복사
$ kubectl apply -f deployment-definition.yaml
Plain Text
복사
•
imgae update를 통한 deployment 업데이트.
$ kubectl set image deployment/myapp-deployment nginx=nginx:1.9.1
Plain Text
복사
Upgrades
•
업데이트 할 때 새로운 Replicaset을 만들고, 기존 RS에서 하나하나 지우면서 새로운 RS에 옮김
Rollback
•
변경사항 취소
$ kubectl rollout undo deployment/myapp-deployment
Plain Text
복사
Summarize kubectl commands
$ kubectl create -f deployment-definition.yaml
$ kubectl get deployments
$ kubectl apply -f deployment-definition.yaml
$ kubectl set image deployment/myapp-deployment nginx=nginx:1.9.1
$ kubectl rollout status deployment/myapp-deployment
$ kubectl rollout history deployment/myapp-deployment
$ kubectl rollout undo deployment/myapp-deployment
Plain Text
복사