Amazon Web Services 한국 블로그

Kubernetes 버전 롤백을 사용하여 Amazon EKS 클러스터를 자신 있게 업그레이드하세요!

Kubernetes 컨트롤 플레인 업그레이드는 그동안 한 번 실행하면 되돌릴 수 없는 작업이었습니다. 오픈 소스 Kubernetes는 컨트롤 플레인 롤백을 지원하지 않으므로 한 번 업그레이드하면 되돌릴 수 없습니다. 커뮤니티는 여기서 실질적인 진전을 이루고 있으며, KEP-4330에서는 롤백을 용이하게 하기 위해 에뮬레이션된 버전을 도입했습니다. 하지만 실제 환경에서 이러한 제약은 조직들로 하여금 베이크 기간, 단계적 배포 그룹, 자동화된 승인 절차, 수개월에 걸친 업그레이드 주기와 같은 복잡한 보완 메커니즘을 구축하게 만들었습니다. Kubernetes가 매년 3회의 마이너 버전을 출시함에 따라, 특히 규제 환경에서 수백 개의 클러스터를 관리하는 팀들은 업그레이드 시 문제 발생 시 복구할 수 있다는 확신이 없어 업그레이드 자체를 완전히 미루는 경우가 많습니다. 그 결과 클러스터가 이전 버전에 머물고 보안 패치를 누락하게 되며, 결과적으로 연장된 지원 기간까지 지나버리는 상황에 직면하게 됩니다.

오늘, Amazon Elastic Kubernetes Service(Amazon EKS)를 위한 Kubernetes 버전 롤백 기능을 발표합니다. 이 새로운 기능은 클러스터 관리자가 클러스터 업그레이드를 수행할 때 안전장치 역할을 제공합니다. 버전 롤백 기능을 사용하면 업그레이드 후 문제가 발생할 경우 7일 이내에 Kubernetes 버전 업그레이드를 되돌려 클러스터를 이전의 정상 작동 상태로 되돌릴 수 있습니다.

에뮬레이션 방식을 활용하는 기존의 접근법은 클러스터를 일시적인 과도 상태에 머물게 하는 경우가 많습니다. 반면, EKS 버전 롤백은 실제 운영 환경에서 이미 검증을 마친 이전 버전으로 클러스터를 직접 되돌리는 방식을 채택하여, 단순한 에뮬레이션보다 월등한 안정성을 보장합니다. 이제 Kubernetes 1.34에서 1.35로 클러스터를 업그레이드한 후 호환성 문제가 발견되더라도, 7일 이내에 1.34 버전으로 롤백할 수 있습니다. 더 이상 클러스터를 재구축하거나 촉박한 상황에서 급하게 문제를 해결하느라 애쓰지 않아도 됩니다. Kubernetes 버전 업그레이드를 위한 실행 취소 버튼이라고 생각하시면 됩니다.

이 기능은 EKS의 업그레이드 방식과 동일한 증분 방식을 따라, 한 번에 한 단계씩 이전 마이너 버전으로 롤백할 수 있도록 지원합니다. 또한 안전한 롤백을 돕기 위해, EKS는 클러스터 인사이트를 통해 클러스터의 롤백 준비 상태를 자동으로 평가합니다. 이를 통해 작업을 진행하기 전에 노드 버전 호환성이나 애드온 의존성과 같은 항목을 사전에 경고해 줍니다. 이미 상황을 파악했고 신속하게 진행하고 싶다면 --force 플래그를 사용하여 이러한 검사를 생략할 수 있습니다. 위 사항은 사용자가 직접 노드를 관리하든 AWS가 관리하도록 하든, 모든 EKS 클러스터에 동일하게 적용됩니다. 하지만 완전 관리형 인프라를 도입한 고객의 경우, 롤백 기능은 한 단계 더 나아갑니다.

EKS 자동 모드 롤백
EKS 자동 모드를 사용하면 운영 준비가 완료된 Kubernetes 클러스터를 클릭 한 번으로 배포하고 컴퓨팅, 네트워킹 및 스토리지 관리를 자동화하여 인프라가 아닌 애플리케이션에 집중할 수 있습니다. 컨트롤 플레인과 관리형 노드를 모두 함께 롤백해야 하므로 EKS 자동 모드에서는 버전 롤백 시 고려해야 할 추가 사항들이 있습니다. 노드 롤백은 포드 중단 예산을 고려하므로 구성 설정에 따라 작업 시간이 다소 소요될 수 있습니다.

이 프로세스를 제어할 수 있도록 언제든지 노드 롤백을 중지할 수 있는 취소 API를 도입했습니다. 롤백 시간이 너무 오래 걸린다고 판단되거나 다른 방식을 시도하고 싶다면, 현재 작업을 취소한 뒤 중단 예산을 조정하여 롤백 속도를 높이거나 다른 해결 방법을 모색할 수 있습니다.

EKS는 워크로드의 안정성을 최우선으로 고려하기 때문에, 기본적으로 롤백 과정 중에는 귀하의 중단 예산을 우회하지 않습니다. 필요한 경우 언제든지 중단 예산을 직접 수정하거나 제거하여 프로세스 속도를 높일 수 있습니다.

직접 사용해 보기
버전 롤백을 시도하기 위해 Amazon EKS 콘솔로 이동하여 최근에 업그레이드한 클러스터 중 하나를 선택했습니다.

클러스터의 구성 페이지에서 현재 롤백 창에 대한 정보와 함께 버전 롤백을 시작하는 옵션을 볼 수 있습니다.

롤백을 시작하기 전에 롤백 인사이트를 검토하여 잠재적인 문제가 있는지 확인했습니다. 인사이트를 통해 노드 상태를 확인했으며, 작업 진행 전 해결해야 할 사항들을 사전에 확인할 수 있었습니다.

확인 후 롤백이 시작되었습니다. 내 클러스터는 프로세스 내내 계속 작동했습니다. 컨트롤 플레인 롤백은 표준 업그레이드와 비슷하게 약 20분이 걸렸습니다. EKS 자동 모드 클러스터의 경우 중단 예산 설정에 따라 노드가 정상적으로 롤백되었습니다.

완료되면 클러스터가 이전 Kubernetes 버전으로 돌아와 정상적으로 작동되었습니다.

정식 출시
Amazon EKS의 Kubernetes 버전 롤백 기능은 오늘부터 Amazon EKS가 제공되는 모든 상용 AWS 리전에서 추가 비용 없이 이용하실 수 있습니다. 일반적으로 발생하는 표준 EKS 및 컴퓨팅 비용에 대해서만 비용을 지불하면 됩니다. 롤백 기능 사용에 따른 추가 비용은 없습니다.

컨트롤 플레인 롤백은 모든 EKS 클러스터에서 사용할 수 있으며 노드 롤백은 EKS 자동 모드를 실행하는 클러스터에서 사용할 수 있습니다. 버전 롤백은 EKS 표준 지원 및 확장 지원으로 제공되는 Kubernetes 버전을 실행하는 클러스터를 지원합니다.

시작하려면 Amazon EKS 설명서를 참조하거나 Amazon EKS 콘솔에서 직접 사용해 보세요.