이 페이지에서는 관련 태스크와 설정에 대한 자세한 내용과 연결된 링크를 포함하여 Google Kubernetes Engine(GKE) Autopilot 클러스터에서 자동 업그레이드가 작동하는 방식을 설명합니다. 이 정보를 참조하여 워크로드 중단을 최소화하면서 클러스터를 업데이트하여 안정성과 보안을 확보할 수 있습니다.
자동 제어 영역 및 노드 업그레이드
모든 Autopilot 클러스터에서 자동 업그레이드가 사용 설정됩니다. 자동 업그레이드에 GKE 버전을 선택하면 GKE에서 자동 업그레이드를 시작하고 모든 클러스터에서 자동 업그레이드를 관찰하며 비정상 노드와 같은 문제가 발생하면 개입합니다. 자동 업그레이드를 사용 중지할 수는 없지만 유지보수 기간 및 유지보수 제외를 사용하여 업그레이드 시기를 제어할 수 있습니다.
클러스터를 업그레이드하기 위해 GKE에서 제어 영역과 노드가 실행하고 있는 버전을 업데이트합니다. 클러스터는 최신 부 버전(예: 1.24~1.25) 또는 최신 패치 버전(예: 1.24.2-gke.100~1.24.5-gke.200)으로 업그레이드됩니다. 자세한 내용은 GKE 버전 관리 및 지원을 참조하세요.
모든 Autopilot 클러스터는 출시 채널에 등록되므로 GKE는 컨트롤 플레인과 노드를 자동으로 업그레이드하여 동일한 GKE 버전을 실행합니다.GKE는 클러스터의 제어 영역을 업그레이드한 후에 노드를 업그레이드합니다.
자동 제어 영역 업그레이드
모든 Autopilot 클러스터는 리전 클러스터입니다. 리전 클러스터에는 제어 영역 복제본이 여러 개 있으며 한 번에 복제본 하나만 무작위 순서로 업그레이드됩니다. 이렇게 하면 자동 업그레이드 중에 클러스터가 가용성이 높은 상태로 유지됩니다. 업그레이드가 진행되는 동안에만 각 제어 영역 복제본을 사용할 수 없습니다.
유지보수 기간 또는 유지보수 제외를 구성하면 가능한 경우 GKE에서 구성을 적용합니다.
컨트롤 플레인 업그레이드가 진행 중인 경우에는 GKE에서 새 노드를 만들 수 없습니다. 컨트롤 플레인 업그레이드가 진행되는 동안 새 노드 유형이 필요한 포드를 배포하면 컨트롤 플레인 업그레이드가 완료될 때까지 지연이 발생할 수 있습니다.
자동 노드 업그레이드
GKE에서 Autopilot 클러스터 제어 영역을 업그레이드하면 GKE는 노드를 동일한 GKE 버전으로 업그레이드합니다.
Autopilot에서 GKE는 비슷한 특성을 함께 공유하는 노드를 그룹화합니다. GKE는 Autopilot 노드에 일시 급증 업그레이드를 사용하여 동시에 한 그룹에서 노드를 최대 20개까지 업그레이드합니다. 동시에 업그레이드되는 정확한 노드 수는 노드와 워크로드의 고가용성이 지속적으로 보장되도록 달라집니다.
노드에서 실행되는 워크로드 구성 수와 노드 수에 따라 노드 업그레이드에 몇 시간이 걸릴 수 있습니다. 예를 들어 다음 구성은 더 긴 업그레이드에 영향을 줄 수 있습니다.
- pod 구성에서 높은
terminationGracePeriodSeconds
값 - 보수적
PodDisruptionBudget
- 노드 어피니티 상호작용
- 연결된
PersistentVolumes
유지보수 기간 또는 유지보수 제외를 구성하면 가능한 경우 GKE에서 구성을 적용합니다.
GKE에서 노드를 업그레이드하면 다음 단계가 수행됩니다.
- GKE에서 새 GKE 버전으로 새 일시 급증 노드를 만들고 일시 급증 노드가 제어 영역에 등록될 때까지 기다립니다.
- GKE는 업그레이드할 기존 노드(대상 노드)를 선택합니다.
- GKE는 새 포드가 대상 노드에 배치되지 않도록 대상 노드를 차단합니다.
- GKE는 대상 노드를 드레이닝하고 대상 노드에서 기존 포드를 삭제합니다.
PodDisruptionBudget
은 1시간 동안 적용됩니다.terminationGracePeriodSeconds
는 25초로 제한된 Spot 포드를 제외한 대부분의 포드에서 10분(600초)으로 제한됩니다.
GKE는 워크로드 컨트롤러에서 관리하는 포드를 사용 가능한 다른 노드로 다시 예약합니다. 다시 예약할 수 없는 포드는 GKE에서 다시 예약할 수 있을 때까지
PENDING
상태로 유지됩니다.GKE에서 대상 노드를 삭제합니다.
특정 GKE 버전으로의 자동 업그레이드 수가 크게 증가하여 GKE Fleet 전체에서 비정상 노드가 발생하면 문제를 조사하는 동안 GKE는 해당 버전으로의 업그레이드를 중지합니다.
자동 업그레이드 대상 버전이 선택되는 방식
GKE는 정기적으로 새로운 부 버전을 출시하지만 자동 업그레이드에 출시된 버전이 즉시 선택되지 않습니다. 자동 업그레이드 대상으로 한정하려면 GKE 버전에서 시간 경과에 따른 안정성이 입증되도록 충분한 사용량을 누적해야 합니다.
그러면 Google Cloud에서 이전 GKE 버전의 특정 하위 집합을 실행하는 클러스터의 자동 업그레이드 대상으로 버전을 선택합니다. 예를 들어 새로운 부 버전이 출시되면 사용 가능한 가장 오래된 부 버전이 일반적으로 지원되지 않게 됩니다. GKE에서 지원되지 않는 부 버전을 실행하는 클러스터를 자동 업그레이드 대상 버전으로 업그레이드합니다.
GKE는 출시 노트에 새로운 자동 업그레이드 대상 버전을 발표합니다. 몇 주 동안 특정 버전이 제어 영역 자동 업그레이드와 노드 자동 업그레이드 대상으로 선택되는 경우가 간혹 있습니다. GKE는 부 버전(예: v1.21.x) 내 새 패치 출시 버전으로 자동 업그레이드됩니다.
버전 수명 주기와 버전 관리 스킴에 대한 자세한 내용은 GKE 버전 관리 및 지원을 참조하세요.
버전 출시 시기에 영향을 미치는 요소
새 버전에서 클러스터의 안정성과 신뢰성을 보장하기 위해 GKE는 버전 출시 중에 특정 관행을 따릅니다.
여기에는 다음을 비롯하여 다양한 관행이 포함됩니다.
- GKE는 Google Cloud 리전과 영역에 변경사항을 점진적으로 출시합니다.
- GKE는 출시 채널에 패치 버전을 점진적으로 출시합니다. 사용량이 누적되고 안정성이 계속 유지되면 패치가 안정적인 출시 채널로 승격되기 전에 빠른 출시 채널, 일반 출시 채널 순으로 지정된 적응 시간이 됩니다. 출시 채널에서 적응 시간 동안 패치 버전에 문제가 발견되면 해당 버전은 다음 채널로 승격되지 않으며 최신 패치 버전에서 문제가 해결됩니다.
- GKE는 패치 버전에 유사한 적응 프로세스를 따라 부 버전을 점진적으로 출시합니다. 부 버전에는 더 중대한 변경사항이 있으므로 적응 시간이 더 늘어납니다.
- 새 버전이 클러스터 그룹에 영향을 주면 GKE에서 자동 업그레이드를 지연시킬 수 있습니다. 예를 들어 GKE는 지원 중단된 API 또는 다음 부 버전에서 삭제될 기능에 노출됐다고 감지된 클러스터에 대한 자동 업그레이드를 일시중지합니다.
- GKE는 비즈니스 연속성을 보장하기 위해 피크 기간(예: 주요 공휴일)에 새 버전 출시를 지연시킬 수 있습니다.
자동 업그레이드가 허용되는 경우 구성
기본적으로 자동 업그레이드는 언제든지 허용됩니다. 자동 업그레이드는 특히 Autopilot 클러스터에 거의 영향을 주지 않습니다. 그러나 세부적으로 제어해야 하는 워크로드가 일부 있을 수 있습니다. 유지보수 기간 및 유지보수 제외를 구성하여 자동 업그레이드가 허용되는 경우와 허용되지 않는 경우를 관리할 수 있습니다.
유지보수 기간 및 유지보수 제외를 구성하면 현재 시간이 유지보수 기간에 해당될 때까지 업그레이드가 수행되지 않습니다. 업그레이드가 완료되기 전에 유지보수 기간이 만료되면 GKE는 업그레이드를 일시중지하려고 시도합니다. GKE는 사용 가능한 다음 유지보수 기간 중에 업그레이드를 재개합니다.
Autopilot 클러스터 수동 업그레이드
Autopilot 클러스터 제어 영역의 GKE 버전을 수동으로 업그레이드할 수 있습니다. GKE는 유지보수 가용성에 따라 노드가 최대한 빨리 제어 영역 버전과 일치하도록 자동으로 업그레이드합니다. 자세한 내용은 제어 영역 수동 업그레이드를 참조하세요. Autopilot 클러스터의 노드 버전은 수동으로 관리할 수 없습니다.
제어 영역 버전을 동일한 출시 채널에서 지원되는 부 또는 패치 버전으로 업그레이드하거나 클러스터와 다른 출시 채널의 클러스터와 같은 부 버전의 패치 버전으로 업그레이드할 수 있습니다.
예를 들어 일반 출시 채널에서 GKE 버전 1.22.8-gke.202를 실행하는 Autopilot 클러스터를 가정해 보겠습니다. 다음 동작이 적용됩니다.- 일반에서 모든 버전으로 업그레이드할 수 있습니다.
- 신속 채널에서 패치 버전 1.22로 업그레이드할 수 있습니다.
채널 외부에서 업그레이드하는 방법에 대한 자세한 내용은 최신 채널에서 패치 버전 실행을 참조하세요.
일시 급증 업그레이드
Autopilot 클러스터는 일시 급증 업그레이드를 사용하여 동시에 노드 여러 개를 업그레이드합니다. 일시 급증 업그레이드를 사용하면 GKE에서 실행 중인 워크로드에 충분한 컴퓨팅 용량을 유지하여 실행 중인 워크로드에 중단을 유발하는 버전 업그레이드를 줄일 수 있습니다. Autopilot은 업그레이드 중에 클러스터에 추가된 일시 급증 노드 수를 관리합니다. 이 숫자는 클러스터의 총 크기에 따라 다릅니다. 또한 GKE는 업그레이드 중에 동시에 사용할 수 없는 총 대상 노드 수를 관리합니다.
새 일시 급증 노드와 사용할 수 없는 대상 노드 수는 클러스터에 항상 실행 중인 모든 워크로드에 충분한 컴퓨팅 용량이 있도록 보장하기 위해 다릅니다. GKE가 업그레이드 중에 대상 노드에서 일시 급증 노드로 워크로드를 마이그레이션하는 동안 잠시 중단될 수 있습니다.
일시 급증 업그레이드가 발생하는 방법에 대한 설명은 자동 노드 업그레이드를 참조하세요.
일시 급증 업그레이드 할당량 요구사항
노드 재생성과 달리 일시 급증 업그레이드에는 추가 Compute Engine 리소스가 필요합니다. 리소스 할당은 사용 가능한 Compute Engine 할당량에 따라 달라집니다. 구성에 따라 이 할당량으로 인해 동시 업그레이드 수가 제한되거나 업그레이드가 실패할 수 있습니다. 확장 문제를 방지하고 더욱 예측 가능한 업그레이드할 수 있는 권장사항으로 Compute Engine 인스턴스 할당량이 90%를 초과하지 않았는지 확인합니다.
할당량에 대한 자세한 내용은 노드 업그레이드 리소스 보장을 참조하세요.
업그레이드 알림 수신
GKE에서 업그레이드 알림을 Pub/Sub에 게시하여 GKE로부터 클러스터 관련 정보를 받을 수 있는 채널을 제공합니다.
자세한 내용은 클러스터 알림 수신을 참조하세요.
구성요소 업그레이드
GKE는 클러스터의 특정 기능을 지원하기 위해 워커 노드에서 시스템 워크로드를 실행합니다. 예를 들어 gke-metadata-server
시스템 워크로드는 GKE용 워크로드 아이덴티티 제휴를 지원합니다.
GKE는 이러한 워크로드의 상태를 담당합니다. 이러한 구성요소에 대한 자세한 내용은 관련 기능에 대한 문서를 참조하세요.
구성요소에 새로운 기능 또는 수정사항이 제공되는 경우 GKE는 해당 패치 버전이 포함된 패치 버전을 표시합니다. 최신 버전의 구성 요소를 가져오려면 관련 문서나 출시 노트를 참조하여 컨트롤 플레인 또는 노드를 적절한 버전으로 업그레이드하는 방법을 확인하세요.
다음 단계
- 유지보수 기간 및 유지보수 제외 구성
- 출시 시퀀싱을 사용하여 환경 간 자동 클러스터 업그레이드를 관리하는 방법 알아보기
- GKE 클러스터 업그레이드: GKE 클러스터 안정성, 보안, 성능을 위한 권장사항 보기