쿠버네티스 운영의 가장 큰 부담스러운 점은 클러스터 버전 업그레이드 입니다. 클러스터 버전을 업그레이드 했을 때 서비스 장애가 발생할 확률이 있기 때문입니다.
쿠버네티스 업그레이드 전략
쿠버네티스 버전 업그레이드는 크게 In-place와 클러스터 복제가 있습니다.
in-place는 서버 한개한개 차례대로 쿠버네티스 버전을 업그레이드 하는 방법입니다. control plane을 먼저 업그레이드 하고 worker node버전을 업그레이드 합니다. 클러스터 복제는 버전이 업그레이드 된 쿠버네티스 클러스터와 쿠버네티스 리소스를 복제한 후, 트래픽을 전환하는 방식입니다. 트래픽을 신규 클러스터에 한번에 전환하면 blue/green, 조금씩 전환하면 canary라고 부릅니다.
어떤 전략을 사용해야할까?
개인적으로 3가지 기준으로 쿠버네티스 업그레이드 전략을 선택합니다.
1. 서버를 증설할 수 없는 환경
2. 롤백여부가 중요한 환경
3. 예상 가능한 오류가 있고 그 장애를 빠르게 고칠 수 있는지 여부
1. 쿠버네티스가 설치되어 있는 환경이 서버를 증설할 수 없는 환경(예: 온프레미스)라고 하면 in-place방법 밖에 사용할 수 없습니다. 클러스터 복제방법은 서버수가 x2가 필요하기 때문에 서버 대수가 부족한 환경이면 사용할 수 없습니다.
2. 클라우드 환경은 돈만 지불하면 언제든지 서버 대수를 늘릴 수 있습니다. 그래서 클라우드 환경은 in-place와 클러스터 복제방법을 둘다 선택할 수 있습니다. 그러면 클라우드 환경은 어떤 기준을 두고 전략을 선택해야 할까요?
여러가지 기준이 있지만, 롤백이 필요하다라는 기준이 있으면 클라우드 복제방식을 선택해야 합니다. in-place방법은 클러스터를 업그레이드 하면 롤백이 불가능합니다. 반대로 클러스터 복제는 이전 버전 클러스터가 있기 때문에 언제든지 트래픽 가중치를 통해 롤백이 가능합니다. 회사에서 SLA(Service-level agreements, SLA)계약이 있다면 쿠버네티스 업그레이드로 인한 서비스 장애가 회사에 법적인 책임으로 이어집니다. 그래서 SLA계약이 있는 회사는 빠르게 장애를 처리하기 위해 롤백을 0순위로 두고 클러스터 업그레이드를 진행합니다.
3. 또는 예상 가능한 오류가 있고 그 오류를 빠르게 고칠 수 있으면 in-place가 클러스터 복제보다 좋을 수 있습니다. 클러스터 복제의 단점은 비용이 x2가 듭니다. 따라서 예상 가능한 오류를 확인해보고 그 오류를 빠르게 고칠 수 있다면 in-place를 선택할 수도 있습니다. 다만 언제든지 예상 가능한 오류만 일어나는 것이 아니여서 위험도가 있습니다.
아래 다큐영상은 조종사가 어떻게 위험을 통제하는가를 잘 설명합니다. 통제가능한 위험은 수용하고 통제불가능한 위험은 회피한다고 설명합니다.
'전공영역 공부 기록' 카테고리의 다른 글
EKS Auto Mode는 무엇이고 왜 출시되었을까? (2) | 2024.12.15 |
---|---|
ElasticCache Scale-Up 후 SpringBoot 연결 오류 (3) | 2024.11.11 |
hashicorp vault secret엔진을 v2로 업그레이드하는 방법 (0) | 2024.10.13 |
Hashicorp vault 소개 (0) | 2024.10.11 |
쿠버네티스 statefulset OnDelete 전략 (6) | 2024.10.10 |