반응형
Deployment
- ReplicaSet을 제어해주는 부모 역할
- ReplicaSet을 컨트롤해서 Pod수를 조절
- Deployment의 목적
- Rolling Update & Rolling Back
Rolling Update란?
- 서비스의 중단 없이 버전을 업데이트 하는 것
- pod 인스턴스를 점진적으로 새로운것으로 업데이트
Deployment definition
- Rolling Update 기능을 제외하면 ReplicaSet과 Deployment 똑같음
Deployment example
- create -f를 통해 Deployment 실행
- kubectl create -f deploy-nginx.yaml
- get을 통해 Deployment, ReplicaSet, Pod 확인
- kubectl get deployments
- kubectl get rs
- kubectl get pods
- Deployment 생성 -> Deployment가 ReplicaSet 생성 -> ReplicaSet이 Pod 생성
- pod 지우면 Replicaset이 보장 수에 맞게 pod 생성
- Replicaset 지우면 pod&Replicaset 삭제 -> Deployment가 Replicaset 생성, Replicaset이 pod 생성
- Deployment 지우면 세개 모두 삭제
Deployment Rolling Update & Rolling Back
- Rolling Update
- rolling update 커맨드
- kubectl set image deployment <deploy_name> <container_name>=<new_version_image> --record
- --record는 업데이트 과정을 history로 기록하는 옵션
- rolling update 커맨드
- Controlling Rollling Update
- rolling update 상태 확인
- kubectl rollout status deployment <deploy_name>
- rolling update 일시정지/재시작
- kubectl rollout pause/resume deployment <deploy_name>
- rolling update 상태 확인
- RollBack
- rolling update 히스토리 확인
- kubectl rollout history deployment <deploy_name>
- 바로 전단계 버전으로 rollback
- kubectl rollout undo deploy <deploy_name>
- 특정 시점 전단계 버전으로 rollback
- kubectl rollout undo deploy <deploy_name> --to-revision=3
- --to-revision은 revision 값으로 롤백하는 옵션
- 3번 시점 버전으로 rollback 할경우 history에 3번 시점 사라지고 3번시점은 버전은 현재시점+1 시점의 버전이 됨
- history에 1, 2, 3, 4, 5가 있을 때, 3으로 롤백할 경우 3번 사라지고 6번이 3번 버전이 되어 history에 1,2,4,5,6이 남게 됨
- rolling update 히스토리 확인
Rolling Update Deployment Example
- revisionHistoryLimit
- history 제한 수
- progressDeadlineSeconds
- 해당 시간동안 업데이트 못하면 업데이트 취소
- maxSurge
- 롤링 업데이트시 최대 pod개수
- replicas(=3)의 25%(0.75)를 반올림한 값(1)을 replicas(3)에 더한 값(4)
- 값이 클수록 업데이트 속도 빠름
- 얼마나 빠르게 업데이트 할 것인지 커스터마이징 가능
- 롤링 업데이트시 최대 pod개수
- maxUnavailable
- 터미네이팅 조절
- annotations
- 쿠버네티스의 동작방식 컨트롤 서포트
- yaml파일을 이용하여 업데이트 시키는 방법
- yaml파일을 편집하여 version 변경하고 apply를 통해 업데이트
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes - StatefulSet (0) | 2023.03.03 |
---|---|
[k8s]Kubernetes - DaemonSet (0) | 2023.03.03 |
[k8s]Kubernetes - ReplicaSet (0) | 2023.02.23 |
[k8s]Kubernetes - Controller/ReplicationController (0) | 2023.02.21 |
[k8s]Kubernetes - Pod 환경 변수 & 구성 패턴 (0) | 2023.02.20 |