-
쿠버네티스 Deployment Update클라우드 교육/kubernetes 2023. 5. 8. 11:44
Deployment에는 두가지 업데이트 방식이 있는데,
Recreate , RollingUpdate가 있다.
Recreate는 한번에 레플리카셋을 삭제하고 새로 생성하는 방식이다.
속도가 빠르고 추가 리소스를 잡아먹지 않지만, 파드가 없는 타이밍이 생기는 단점이 있다
Rolling Update는 업데이트 중에 maxUnabaliable 과 maxSurge를 설정할 수 있는데, 추가 리소스를 사용안하도록 하거나, 파드가 끊기지 않게 전환 할 수 있는 장점이 있다.
Recreate부터 알아보자.
spec.strategy.type 에 Recreate로 임명하고
apiVersion: apps/v1 kind: Deployment metadata: name: s5 spec: strategy: type: Recreate replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.12
실행시킨뒤 업데이트를 한다.
업데이트는
kubectl set image deploy <deployment 이름> nginx-container=nginx.1.17
터미널을 하나 더 열어두고 아래명령어를 입력한다.
kubectl get replicaset --watch
이렇게 보면중간에 한꺼번에 사라지고, 새로 Replicaset가 생성된 것을 확인할 수 있다.
이번엔 RollingUpdate
spec.strategy.type에 RollingUpdate를 입력하고, maxUnavailable과 maxSurge를 입력한다.
apiVersion: apps/v1 kind: Deployment metadata: name: s6 spec: strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 0 maxSurge: 1 replicas: 3 selector: matchLabels: app: sample-app template: metadata: labels: app: sample-app spec: containers: - name: nginx-container image: nginx:1.12
그리고 생성 후 업데이트.
역시나 watch로 확인해보면 두 Replicaset이 동시에 존재하는것을 알 수 있다.
'클라우드 교육 > kubernetes' 카테고리의 다른 글
쿠버네티스 DaemonSet Update (0) 2023.05.08 쿠버네티스 명령어 scale (0) 2023.05.07 쿠버네티스 컨테이너 설정 변경 (1) 2023.05.06 쿠버네티스 DNS (0) 2023.05.06 쿠버네티스 메타데이터 (0) 2023.05.03