노드 업그레이드 전략 구성


플랫폼 관리자는 노드 업그레이드 전략을 구성하여 GKE가 Google Kubernetes Engine(GKE) 클러스터에서 노드를 업그레이드하는 방법을 조정할 수 있습니다. 노드 업그레이드 전략에 대한 자세한 내용은 노드 업그레이드 전략을 참조하세요.

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우 gcloud components update를 실행하여 최신 버전을 가져옵니다.

노드 업그레이드 전략 구성

클러스터의 노드를 구성할 때 지원되는 노드 풀 업그레이드 전략, 이름하여 일시 급증 또는 블루/그린 중 하나를 선택하고 구성할 수 있습니다. 이러한 업그레이드 전략을 사용하면 클러스터 환경의 요구사항에 따라 노드 풀 업그레이드 프로세스를 최적화할 수 있습니다.

일시 급증 업그레이드 구성

일시 급증 업그레이드를 사용하면 GKE 업그레이드 노드 수를 한 번에 변경할 수 있고 업그레이드로 인한 워크로드 중단 기간을 변경할 수 있습니다.

max-surge-upgrademax-unavailable-upgrade 플래그는 각 노드 풀에 정의됩니다. 올바른 매개변수 선택에 대한 자세한 내용은 일시 급증 업그레이드 구성 최적화를 참조하세요.

이 설정은 클러스터 또는 노드 풀을 만들거나 업데이트할 때 변경할 수 있습니다.

아래 명령어에 사용되는 변수는 다음과 같습니다.

  • CLUSTER_NAME: 노드 풀의 클러스터 이름입니다.
  • COMPUTE_ZONE: 클러스터의 영역입니다.
  • NODE_POOL_NAME: 노드 풀의 이름입니다.
  • NUMBER_NODES: 각 클러스터 영역의 노드 풀에 있는 노드 수입니다.
  • SURGE_NODES: 노드 풀의 각 업그레이드에서 생성될 추가(일시 급증) 노드의 수입니다.
  • UNAVAILABLE_NODES: 노드 풀의 각 업그레이드에서 동시에 사용할 수 없는 노드 수입니다.

특정 일시 급증 매개변수로 클러스터 만들기

일시 급증 업그레이드에 대한 특정 설정으로 클러스터를 만들려면 max-surge-upgrademax-unavailable-upgrade 플래그를 사용합니다.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

일시 급증 업그레이드가 사용 중지된 클러스터 만들기

일시 급증 업그레이드가 없는 클러스터를 만들려면 max-surge-upgrade 플래그 값을 0으로 설정합니다.

gcloud container clusters create CLUSTER_NAME \
    --max-surge-upgrade=0 --max-unavailable-upgrade=1

특정 일시 급증 매개변수로 노드 풀 만들기

기존 클러스터에서 일시 급증 업그레이드에 대한 특정 설정으로 노드 풀을 만들려면 max-surge-upgrademax-unavailable-upgrade 플래그를 사용합니다.

gcloud container node-pools create NODE_POOL_NAME \
    --num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

기존 노드 풀의 일시 급증 업그레이드 설정 변경

기존 노드 풀의 업그레이드 설정을 업데이트하려면 max-surge-upgrademax-unavailable-upgrade 플래그를 사용합니다. max-surge-upgrade0보다 큰 값으로 설정하면 GKE가 일시 급증 노드를 생성합니다. max-surge-upgrade0으로 설정하면 GKE가 일시 급증 노드를 생성하지 않습니다.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODES

노드 풀에서 일시 급증 업그레이드가 사용 설정되었는지 확인

노드 풀에서 일시 급증 업그레이드가 사용 설정되었는지 확인하려면 gcloud를 사용하여 클러스터 매개변수를 설명합니다.

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

노드 풀에서 일시 급증 업그레이드가 사용 설정된 경우 나열된 전략은 SURGE입니다.

블루/그린 업그레이드 구성

블루/그린 노드 풀 업그레이드를 사용하면 다음을 제어할 수 있습니다.

  • BATCH_NODE_COUNT 또는 BATCH_PERCENT: GKE가 한 번에 드레이닝하는 노드의 배치 크기입니다. 즉, 포드가 노드에서 삭제됩니다. 기본값은 BATCH_NODE_COUNT=1입니다. 이러한 설정 중 하나가 0으로 설정되면 GKE는 이 단계를 건너뛰고 노드 풀 적응 단계로 진행합니다.
  • BATCH_SOAK_DURATION: 드레이닝하는 노드의 각 배치 사이의 시간입니다.
  • NODE_POOL_SOAK_DURATION: 새 노드 구성에서 워크로드를 검증하는 데 걸리는 적응 시간입니다.

블루/그린 업그레이드 단계의 작동 방식에 대한 자세한 내용은 블루/그린 업그레이드 단계를 참조하세요.

다음 섹션에 나열된 명령에는 다음 변수가 사용됩니다.

  • CLUSTER_NAME: 노드 풀의 클러스터 이름입니다.
  • NODE_POOL_NAME: 노드 풀의 이름입니다.
  • NUMBER_NODES: 각 클러스터 영역의 노드 풀에 있는 노드 수입니다.
  • BATCH_NODE_COUNT: 블루 풀 드레이닝 단계 중 일괄 처리에서 드레이닝할 블루 노드 수입니다. 기본값은 1입니다. 0으로 설정하면 블루 풀 드레이닝 단계를 건너뜁니다.
  • BATCH_PERCENT: 블루 풀 드레이닝 단계 중에 일괄로 드레이닝할 블루 노드의 비율로, 0에서 1 사이의 십진수로 표시됩니다. 백분율이 노드의 정수가 아니면 GKE는 가장 가까운 노드부터 최솟값 노드 1개로 내림합니다. 0으로 설정하면 블루 풀 드레이닝 단계를 건너뜁니다.
  • BATCH_SOAK_DURATION: 각 일괄 드레이닝 이후 대기할 시간(초)입니다. 기본값은 0입니다.
  • NODE_POOL_SOAK_DURATION: 모든 일괄 처리의 드레이닝을 완료한 후 대기할 시간(초)입니다. 기본값은 3,600초입니다.

블루/그린 업그레이드 전략으로 노드 풀 만들기

블루/그린 업그레이드 기본 매개변수로 노드 풀 만들기

기존 클러스터에 기본 매개변수로 블루/그린 업그레이드 전략을 사용하여 노드 풀을 만들려면 다음 명령어를 사용합니다.

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

절대 노드 수 배치 크기를 사용하여 블루/그린 업그레이드로 노드 풀 만들기

커스텀 블루/그린 업그레이드 설정으로 노드 풀을 만들려면 노드 풀 만들기 명령어와 함께 매개변수 플래그를 사용합니다.

이 명령어는 일괄 드레이닝의 절대 노드 수를 사용하여 다음과 같은 맞춤설정된 블루/그린 구성으로 노드 풀을 만듭니다.

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10초
  • NODE_POOL_SOAK_DURATION = 600초
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

백분율 기반 배치 크기를 사용하여 블루/그린 업그레이드로 노드 풀 만들기

이 명령어는 일괄 드레이닝 백분율을 사용하여 다음과 같은 맞춤설정된 블루/그린 구성으로 노드 풀을 만듭니다.

  • BATCH_PERCENTAGE = 노드 풀 크기의 25%
  • BATCH_SOAK_DURATION = 10초
  • NODE_POOL_SOAK_DURATION = 1800초
gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

기존 노드 풀 블루/그린 업그레이드 전략 업데이트

블루/그린 업그레이드 기본 매개변수로 노드 풀 업데이트

기존 노드 풀을 블루/그린 업그레이드 전략으로 업데이트하려면 다음 명령어를 사용하세요.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

절대 노드 수 배치 크기를 사용하여 블루/그린 업그레이드로 노드 풀 업데이트

기존 노드 풀을 커스텀 설정으로 블루/그린 업그레이드 전략으로 업데이트하려면 노드 풀 만들기 명령어와 함께 매개변수 플래그를 사용합니다.

이 명령어는 일괄 드레이닝의 절대 노드 수를 사용하여 다음과 같은 맞춤설정된 블루/그린 구성을 사용하도록 노드 풀을 업데이트합니다.

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10초
  • NODE_POOL_SOAK_DURATION = 600초
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
    --node-pool-soak-duration=600s

백분율 기반 배치 크기를 사용하여 블루/그린 업그레이드로 노드 풀 업데이트

이 명령어는 일괄 드레이닝 백분율을 사용하여 다음과 같은 맞춤설정된 블루/그린 구성으로 노드 풀을 만듭니다.

  • BATCH_PERCENTAGE = 노드 풀 크기의 25%
  • BATCH_SOAK_DURATION = 10초
  • NODE_POOL_SOAK_DURATION = 1800초
gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade \
    --standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
    --node-pool-soak-duration=1800s

일시 급증 업그레이드로 다시 전환

설정을 사용하여 블루/그린 업그레이드의 동작을 변경하고 명령어로 업그레이드 프로세스를 제어할 수 있습니다.

하지만 대신 일시 급증 업그레이드를 사용하려면 다음 명령어를 실행하여 일시 급증 업그레이드로 다시 전환합니다.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-surge-upgrade

노드 풀의 업그레이드 설정 검사

노드 풀의 현재 업그레이드 설정을 검사하려면 다음 명령어를 사용하여 노드 풀을 설명합니다.

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME

다음 스니펫은 명령어의 출력 예시입니다. strategy 필드는 사용 중인 업그레이드 전략을 나타냅니다. SURGE는 일시 급증 업그레이드 전략이 사용 설정되어 있음을 나타내고 BLUE_GREEN은 블루/그린 업그레이드 전략이 사용 설정된 것입니다.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

또한 이 명령어는 진행 중인 블루/그린 업그레이드의 현재 단계를 보여줍니다. 노드 풀의 업그레이드 설정 확인에 대해 자세히 알아보세요.

다음 단계