Deployment 생성 시
- Deployment가 생성되며 자동으로 rollout이 trigger 된다.
이렇게 trigger 된 rollout이 deployment revision을 생성한다. (즉, 자동으로 revision#1이 생성됨!)
Container가 update 된 경우
Container에 새로운 버전이 생성된 경우, rollout이 trigger 되며 deployment revision이 생성된다.
생성된 Deployment revision을 이용해 필요시 rollback이 가능하다.
Rollout Status 확인
kubectl rollout status deployment/myapp-deployment
Deployment Revisions and history
kubectl rollout history deployment/myapp-deployment
Deployment Strategy
1) Recreate
모든 서비스를 내리고 다시 올리기 때문에 유저가 사용하는 동안 다운타임이 생길 수밖에 없다.
2) rolling update
Pod를 하나씩 생성하면서 내리기 때문에 다운타임이 없거나 최소화되는 방식.
Default로 지정된 Strategy이므로 따로 설정하지 않으면 자동으로 rolling update 방식이 적용된다.
deployment 변경사항 적용 시
ex) deployment의 spec 중, container image 수정.
#yml 파일 수정 후 , 적용.
kubectl apply -f deploymentfilename.yml
#kubectl 커맨드로 수정.
kubectl set image deployment [deployment_metadata_name] [container name]=[image name]
rollback
command
kubectl rollout undo deployment/[deployment-name]
kubectl get replicasets를 통해 커맨드 사용 전, 후 변경된 사항을 확인할 수 있다.
#create
kubectl create -f deploymentfilename.yml
#get
kubectl get deployments
#update
kubectl apply -f deploymentfilename.yml
kubectl set [image|다른거] deployment [deploymentname] [containername]/[imagename]
#status
kubectl rollout status deployment/[deploymentname]
kubectl rollout history deployment/[deploymentname]
#rollback
kubectl rollout undo deployment/[deploymentname]
* create 커맨드 사용시 --record 옵션을 사용하면, 변경 사항을 일으킨 원인을 기록해준다.
Kubernetes - Deployments (1) | 2023.12.26 |
---|---|
Kubernetes - Replication Controllers and ReplicaSets (1) | 2023.12.26 |