Deployment는 ReplicaSet을 관리하고, 파드의 롤아웃(업데이트) 및 롤백을 처리하는 더 고급 수준의 리소스인데요. 무중단 업데이트, 버전 관리, 롤백 등의 기능을 제공합니다. 그래서 오늘은 Deployment의 롤링업데이트에 대해서 이해해봅시다.
maxUnavailable
maxUnavailable: 업데이트 과정 중 사용할 수 없게 되는 최대 파드 수를 정의합니다.
25%의 maxUnavailable은 원하는 파드 수(3개)의 25%를 의미합니다. 즉, 3 x 0.25 = 0.75, 내림하여 0개입니다.
그러나 maxUnavailable은 최소 1개 파드를 의미해야 하므로, 실제적으로 사용할 수 없는 최대 파드 수는 1개가 됩니다. 해당 내용은 쿠버네티스 공식 문서에 기재되어있습니다.
maxSurge
maxSurge: 업데이트 과정 중에 추가로 생성할 수 있는 파드의 최대 수를 정의합니다.
예를 들어 maxSurge를 1로 설정한다면, 쿠버네티스는 업데이트 동안 기존 파드 수보다 최대 1개 더 많은 파드를 실행할 수 있습니다. 여기서도 25%로 설정했으니 기존 파드 수보다 최대 1개(3 x 0.25 = 0.75) 더 많은 파드를 실행할 수 있습니다.
업데이트 과정
maxSurge에 따라, 기존 파드 수보다 최대 1개 더 많은 파드를 생성할 수 있습니다. 이 경우, 최대 4개의 파드(기존 3개 + 추가 1개)를 가질 수 있습니다.
동시에 maxUnavailable 설정에 따라, 최대 1개의 파드를 사용할 수 없게 할 수 있습니다.
이러한 설정은 업데이트 동안 서비스의 가용성을 최대한 유지하면서도, 새 버전의 파드를 점진적으로 도입할 수 있게 해줍니다. 예를 들어, 새로운 파드가 생성되고 준비 상태가 되면, 오래된 파드 중 하나가 종료되어 총 파드 수를 다시 3개로 유지할 수 있습니다. 이 과정은 모든 파드가 새 버전으로 업데이트될 때까지 계속됩니다.
'성장일기 > Kubernetes' 카테고리의 다른 글
[k8s] 노드, 클러스터 용어 이해하기 (1) | 2024.01.04 |
---|---|
[k8s] 쿠버네티스가 도커 지원 중단한 이유가 무엇일까 (1) | 2024.01.03 |
[쿠버네티스] PVC, 스토리지클래스, 동적프로비저닝 (0) | 2023.11.21 |
[쿠버네티스] PV, PVC (Persistent Volumes / Persistent Volumes Claim) 정리 (0) | 2023.11.21 |
쿠버네티스 기본 네트워크 개념 ( Pod 통신 ) (0) | 2023.11.16 |