이 문서에서는 클러스터 중단 예산의 개념을 소개하고 환경의 요구사항에 맞게 선택적으로 맞춤설정하는 방법을 설명합니다. 클러스터 중단 예산은 플랫폼 관리자가 워크로드의 성능, 안정성, 보안을 향상하면서 워크로드의 중단을 최소화할 수 있도록 지원하는 기능 모음의 한 도구입니다.
클러스터 업그레이드(GKE가 클러스터의 컨트롤 플레인과 노드에서 사용하는 버전을 업데이트하는 경우)는 GKE 클러스터의 주요 중단 원인이 될 수 있습니다. 업그레이드에 대한 자세한 내용은 GKE 클러스터 업그레이드 정보를 참고하세요. 클러스터 업그레이드 중에 중단을 최소화하는 다른 모든 기능에 대해 알아보려면 해당 문서의 클러스터 업그레이드 제어 섹션을 참고하세요. 클러스터 업그레이드 외의 클러스터 수명 주기 변경사항에 관한 일반적인 자세한 내용은 클러스터 수명 주기 변경사항을 관리하여 서비스 중단 최소화를 참고하세요.
클러스터 중단 예산이란 무엇인가요?
클러스터가 너무 자주 자동 업그레이드되어 중단되지 않도록 하기 위해 GKE는 기본적으로 클러스터 중단 예산을 적용하여 자동 클러스터 컨트롤 플레인 업그레이드 간의 최소 간격을 설정합니다. GKE는 클러스터 생성과 첫 번째 자동 컨트롤 플레인 업그레이드 사이에도 이 예산을 적용합니다. 또한 클러스터 컨트롤 플레인을 수동으로 업그레이드하는 경우 GKE는 다음 자동 업그레이드를 실행할 때 클러스터 중단 예산을 적용합니다. 이 업그레이드가 클러스터 중단 예산을 위반하더라도 언제든지 클러스터를 수동으로 업그레이드할 수 있습니다.
클러스터에서 GKE는 노드보다 먼저 컨트롤 플레인을 자동으로 업그레이드합니다. 따라서 이 예산은 자동 클러스터 노드 업그레이드의 최소 주기도 설정합니다.
GKE에는 다양한 유형의 버전 업그레이드를 위한 기본 클러스터 중단 예산이 있습니다.
- 패치 버전 업그레이드: 24시간
- 마이너 버전 업그레이드: 30일
GKE는 동일한 유형의 업그레이드 간에 예산을 적용합니다. 예를 들어 GKE는 패치 버전 1.35.0-gke.1403000과 1.35.0-gke.1624000 간에 클러스터를 업그레이드하는 데 24시간을 기다리고 1.34와 1.35 간에는 30일을 기다립니다. 하지만 GKE는 부 버전 업그레이드 후 24시간이 지나야 패치 업그레이드를 실행합니다.
GKE는 클러스터 업그레이드에만 클러스터 중단 예산을 사용하며 다른 GKE 클러스터 변경 유형에는 사용하지 않습니다.
클러스터 중단 예산은 유지보수 기간 및 제외와는 별개이지만 함께 사용하면 효과적입니다. 유지보수 정책은 GKE 클러스터 유지보수가 가능한 시기와 불가능한 시기를 제어하는 반면, 클러스터 중단 예산은 클러스터 업그레이드 간의 특정 시간 간격을 설정합니다.
클러스터의 중단 예산을 맞춤설정해야 하는 경우
GKE의 기본 클러스터 중단 예산은 업그레이드의 적시성과 연속 업그레이드 방지, 안정성 최적화 간의 균형을 반영합니다. 하지만 이러한 일반적인 값은 클러스터 환경에 적합하지 않을 수 있습니다.
자동 클러스터 업그레이드 간의 최소 시간을 제어하려면 클러스터 중단 예산을 구성하면 됩니다. 예를 들어 다음 시나리오를 고려해 보세요.
- 버전을 프로덕션에 푸시하기 전에 GKE 컨트롤 플레인 패치 버전을 평가하는 맞춤 프로세스가 있으며 이 프로세스에는 기본 클러스터 예산보다 큰 특정 시간이 걸립니다.
- 모든 노드 풀을 업그레이드하는 데 시간이 오래 걸리는 대규모 클러스터가 있습니다. 이러한 노드 풀에서 버전의 상대적 일관성을 유지하려고 합니다. 따라서 패치 업그레이드 빈도를 낮춰 매월 업그레이드하는 한편, 노드 풀 업그레이드가 적시에 완료되도록 자주 유지보수 기간을 허용합니다.
자동 업그레이드의 클러스터 중단 예산 설정
두 개의 부 버전 업그레이드 또는 두 개의 패치 업그레이드 간 간격을 제어해야 하는 특정 요구사항이 있는 경우 자체 클러스터 중단 예산을 설정할 수 있습니다. 하지만 먼저 유지보수 기간을 구성하여 GKE 클러스터 유지보수의 반복 시간을 설정하는 것이 좋습니다. 그런 다음 클러스터 중단 예산으로 업그레이드 간 간격을 선택적으로 맞춤설정할 수 있습니다.
GKE에서 클러스터 업그레이드를 제어하기 위해 제공하는 다른 도구와 함께 클러스터 중단 예산을 사용하는 것이 좋습니다. 다른 모든 업그레이드 도구와 함께 작동하는 이러한 설정은 GKE가 클러스터를 새 버전으로 자동 업그레이드하는 시점에만 영향을 줍니다. GKE는 여전히 유지보수 기간과 제외 기간을 준수하며, 출시 순서를 따르고, 자동 업그레이드에 일반적으로 적용되는 기타 표준 절차도 계속 따릅니다.
기본 클러스터 중단 예산은 패치 업그레이드의 경우 24시간, 마이너 업그레이드의 경우 30일입니다. 0~90일 사이의 시간으로 간격을 구성할 수 있습니다. 하지만 이러한 값을 업데이트할 때는 다음 사항을 고려해야 합니다.
- 이보다 긴 특정 버전 자격 프로세스가 있는 경우를 제외하고 패치 업그레이드 간격을 30일보다 길게 설정하지 않는 것이 좋습니다. 30일보다 적은 빈도로 업그레이드하면 중요한 패치를 놓칠 수 있습니다.
- 클러스터 환경에 허용되는 만큼 자주 부 버전 업그레이드를 허용하는 것이 좋습니다. 최대 90일로 마이너 버전 업그레이드 간격을 설정하면 지원 종료에 도달할 때 GKE가 마이너 버전에서 클러스터를 업그레이드해야 할 가능성이 높아집니다. GKE는 마이너 버전이 지원 종료에 도달하면 7일 동안의 별도 클러스터 중단 예산을 준수하며, 사용자가 구성한 클러스터 중단 예산은 준수하지 않습니다. 자세한 내용은 지원 종료 시 자동 업그레이드를 참고하세요.
- 패치 업그레이드 간격을 부 버전 업그레이드 간격보다 짧게 설정하는 것이 좋습니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치했으면
gcloud components update명령어를 실행하여 최신 버전을 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.
클러스터 중단 예산 구성
먼저 아직 설정하지 않았다면 유지관리 기간을 구성하는 것이 좋습니다.
그런 다음 gcloud CLI를 사용하여 클러스터를 만들거나 업데이트할 때 다음 플래그를 사용하여 맞춤 클러스터 중단 예산을 설정합니다.
- 마이너 업그레이드:
--maintenance-minor-version-disruption-interval=MINOR_INTERVAL - 패치 업그레이드:
--maintenance-patch-version-disruption-interval=PATCH_INTERVAL
이러한 플래그의 경우 MINOR_INTERVAL 또는 PATCH_INTERVAL을 각각 0일 (0s)과 90일 (7776000s) 사이의 초 단위로 표현된 기간으로 바꿉니다.
다음과 같은 상황에서 이러한 플래그를 사용할 수 있습니다.
- 클러스터 만들기:
- 클러스터 업데이트:
gcloud container cluster update
플래그는 동시에 또는 독립적으로 사용할 수 있습니다.
클러스터 중단 예산을 기본값으로 재설정
패치 업그레이드의 경우 24시간, 부 버전 업그레이드의 경우 30일의 기본값으로 클러스터 중단 예산을 재설정하려면 다음 플래그를 사용하면 됩니다.
- 사소한 업그레이드:
--clear-maintenance-minor-version-disruption-interval - 패치 업그레이드:
--clear-maintenance-patch-version-disruption-interval
gcloud container cluster
update 명령어로 클러스터를 업데이트할 때 이러한 플래그를 사용합니다.
플래그는 동시에 또는 독립적으로 사용할 수 있습니다.