노드 자동 업그레이드


이 페이지에서는 Google Kubernetes Engine(GKE)에서 노드 자동 업그레이드를 구성하는 방법을 보여줍니다.

개요

노드 자동 업그레이드는 컨트롤 플레인이 자동 업데이트될 때 클러스터노드를 클러스터 컨트롤 플레인 버전에 맞게 최신 상태로 유지합니다. Google Cloud 콘솔 또는 gcloud 명령어를 사용하여 새 클러스터 또는 노드 풀을 만들면 노드 자동 업그레이드가 기본적으로 사용 설정됩니다.

클러스터 및 노드 업그레이드에 대해 자세히 알아볼 수 있습니다.

노드 자동 업그레이드는 다음과 같은 몇 가지 이점이 있습니다.

  • 관리 오버헤드 감소: 컨트롤 플레인이 자동 업그레이드될 때 수동으로 노드를 추적하고 업데이트할 필요가 없습니다.
  • 보안 개선: 때때로 보안 문제 수정을 위해 새 바이너리가 출시됩니다. 자동 업그레이드를 사용하면 GKE는 자동으로 보안 업데이트를 적용하고 최신 상태로 유지되도록 합니다.
  • 편의성: 최신 Kubernetes 기능으로 노드를 최신 상태로 유지하는 간단한 방법을 제공합니다.

자동 업그레이드가 사용 설정된 노드 풀은 선택 기준(출시 노트에 발표됨)을 충족하면 업그레이드가 예약됩니다. 클러스터 및 제품군 안정성을 보장하기 위해 여러 주에 걸쳐 단계적으로 출시됩니다. 업그레이드가 수행되면 노드가 드레이닝되고 현재 컨트롤 플레인 버전과 일치하도록 다시 생성됩니다. 노드 VM의 부팅 디스크 수정사항은 노드 재생성 시 유지되지 않습니다. 노드 재생성 시 수정사항을 보존하려면 DaemonSet를 사용합니다.

Alpha 클러스터에는 노드 자동 업그레이드를 사용할 수 없습니다. Windows Server 노드 풀에 클러스터를 사용하는 경우 노드 자동 업그레이드를 사용 설정하기 전에 Windows Server 노드 풀 업그레이드를 검토하세요.

기존 노드 풀의 자동 업그레이드 상태 확인

Google Cloud 콘솔 또는 gcloud 명령어를 사용하여 노드 풀의 자동 업그레이드 사용 설정 또는 사용 중지 여부를 확인할 수 있습니다.

gcloud

노드 풀의 자동 업그레이드 상태를 확인하려면 다음 명령어를 실행하세요.

gcloud container node-pools describe NODE_POOL_NAME \
  --cluster CLUSTER_NAME \
  --zone COMPUTE_ZONE

다음을 바꿉니다.

  • NODE_POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 노드 풀이 포함된 클러스터의 이름입니다.
  • COMPUTE_ZONE: 클러스터의 컴퓨팅 영역입니다.

콘솔

노드 풀의 자동 업그레이드 상태를 확인하려면 다음을 수행하세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 보려는 클러스터의 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀 아래에서 살펴보려는 노드 풀의 이름을 클릭합니다.

  5. 노드 풀 세부정보 페이지의 관리에서 자동 업그레이드 필드의 값을 확인합니다.

기존 노드 풀의 노드 자동 업그레이드 사용 설정

Google Cloud 콘솔 또는 gcloud 명령어를 사용하여 새 클러스터를 만들면 노드 자동 업그레이드가 기본적으로 사용 설정됩니다.

노드 자동 업그레이드가 현재 사용 중지된 경우 사용 설정할 수 있습니다.

gcloud

기존 노드 풀의 자동 업그레이드를 사용 설정하려면 다음 명령어를 실행하세요.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

다음을 바꿉니다.

  • NODE_POOL_NAME: 노드 풀의 이름입니다.
  • CLUSTER_NAME: 노드 풀이 포함된 클러스터의 이름입니다.
  • COMPUTE_ZONE: 클러스터의 컴퓨팅 영역입니다.

콘솔

기존 노드 풀의 자동 업그레이드를 사용 설정하려면 다음 단계를 수행하세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀에서 수정하려는 노드 풀의 이름을 클릭합니다.

  5. 노드 풀 세부정보 페이지에서 수정을 클릭합니다.

  6. 관리에서 자동 업그레이드 사용 설정 체크박스를 선택합니다.

  7. 저장을 클릭합니다.

노드가 자동 업그레이드될 수 있는 경우를 더 세부적으로 제어하려면 유지보수 기간 및 유지보수 제외를 구성하는 것이 좋습니다.

노드 업그레이드 상태 확인

gcloud container operations를 사용하여 업그레이드 상태를 확인할 수 있습니다.

클러스터에서 모든 실행 중인 작업과 완료된 작업의 목록을 확인합니다.

gcloud container operations list

각 작업에는 작업 ID와 작업 유형은 물론 시작 및 종료 시간, 대상 클러스터, 상태가 할당됩니다. 이 목록은 다음 예와 비슷하게 표시됩니다.

NAME                              TYPE                ZONE           TARGET              STATUS_MESSAGE  STATUS  START_TIME                      END_TIME
operation-1505407677851-8039e369  CREATE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT16:47:57.851933021Z  20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4  UPGRADE_CLUSTER     us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:40:05.136739989Z  20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989  DELETE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:41:53.918825764Z  20xx-xx-xxT18:43:48.639506814Z

특정 작업에 대한 자세한 정보를 보려면 다음 명령어에 표시된 대로 해당 작업 ID를 지정합니다.

gcloud container operations describe OPERATION_ID

예를 들면 다음과 같습니다.

gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a

노드 풀 업그레이드 설정 확인

gcloud container node-pools describe 명령어를 사용하여 노드 풀에 사용 중인 노드 업그레이드 전략에 대한 세부정보를 참조할 수 있습니다. 블루-그린 업그레이드의 경우 명령어가 업그레이드의 현재 단계도 반환합니다.

다음 명령어를 실행합니다.

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

다음을 바꿉니다.

  • NODE_POOL_NAME: 설명할 노드 풀 이름입니다.
  • CLUSTER_NAME: 설명할 노드 풀의 클러스터 이름입니다.

이 명령어는 현재 업그레이드 설정을 출력합니다. 다음 예시에서는 블루-그린 업그레이드 전략을 사용 중인 경우의 출력을 보여줍니다.

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

블루-그린 업그레이드 전략을 사용하는 경우에는 출력에 블루-그린 업그레이드 설정 및 현재 중간 단계에 대한 세부정보도 포함됩니다. 다음 예시는 이와 같은 출력을 보여줍니다.

updateInfo:
  blueGreenInfo:
    blueInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
    bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
    greenInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME} 
    greenPoolVersion: {GREEN_POOL_VERSION}
    phase: DRAINING_BLUE_POOL

노드 자동 업그레이드 사용 중지

권장 사항은 아니지만, 기본 클러스터가 출시 채널에 등록되어 있지 않으면 기존 노드 풀의 노드 자동 업그레이드를 사용 중지할 수 있습니다.

노드 자동 업그레이드를 사용 중지하기 전 고려사항

노드 풀의 노드 자동 업그레이드를 사용 중지하면 GKE에서 노드 버전을 업데이트하지 않습니다. 노드 자동 업그레이드를 선택 해제해도 GKE에서 클러스터 컨트롤 플레인을 업그레이드하는 것을 차단하지는 않습니다.

사용 중지하면 버전 업데이트가 방지되지만 모든 유지보수 태스크가 방지되지는 않음

노드 자동 업그레이드를 사용 중지하면 GKE가 노드 버전을 업데이트하는 것만 방지하고, GKE가 다른 유지보수 태스크를 시작하는 것을 방지하지 않습니다. 예를 들어 노드 자동 업그레이드가 사용 중지된 경우에도 클러스터에서 IP 주소 순환, 네트워크 정책 사용 설정 또는 PSC 마이그레이션을 트리거하면 노드 풀에 선택한 버전에 관계없이 컨트롤 플레인과 동일한 버전으로 모든 노드를 다시 만듭니다. 유지보수 시기를 제어하려면 유지보수 기간 및 제외를 사용하세요.

사용 중지는 컨트롤 플레인 노드 호환성의 책임을 의미

노드 자동 업그레이드를 사용 중지한 경우, 클러스터의 노드가 클러스터 버전과 호환되는 버전을 실행하고 버전이 Kubernetes 버전 및 버전 차이 지원 정책을 준수하는지 확인할 책임은 사용자에게 있습니다. GKE 버전 1.19부터는 GKE가 오픈소스 버전 차이 정책에 따른 클러스터 상태 및 맞춤을 보장하기 위해 버전이 지원 종료 시점에 도달한 후 지원되지 않는 버전을 실행하는 노드를 업그레이드합니다. 지원되지 않는 버전을 실행하는 노드는 버전 지원 종료 시 즉시 업그레이드되지 않을 수 있으며 실제 타이밍은 Google의 재량에 따라 변경될 수 있습니다.

사용 중지해도 진행 중인 작업은 중지되지 않음

노드 자동 업그레이드를 사용 중지해도 노드 풀의 노드에 대한 진행 중인 업그레이드는 중지하거나 취소되지 않습니다. 진행 중인 업그레이드를 취소하거나 중지하려면 노드 업그레이드 취소를 따르세요. 노드 업그레이드를 취소하면 업그레이드된 노드에서 워크로드가 실패하고 추가 중단을 방지하려는 경우에 유용합니다.

전체 노드 풀의 업그레이드가 완전히 완료되면 업그레이드를 롤백하거나 취소할 수 없습니다. 노드 풀을 다운그레이드하려면 노드 풀 다운그레이드를 참조하세요.

기존 노드 풀의 노드 자동 업그레이드 사용 중지

gcloud

기존 노드 풀의 자동 업그레이드를 사용 중지하려면 다음 명령어를 실행하세요.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --no-enable-autoupgrade

콘솔

기존 노드 풀의 노드 자동 업그레이드를 사용 중지하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 클러스터 목록에서 수정하려는 클러스터 이름을 클릭합니다.

  3. 노드 탭을 클릭합니다.

  4. 노드 풀에서 수정하려는 노드 풀의 이름을 클릭합니다.

  5. 노드 풀 세부정보 페이지에서 수정을 클릭합니다.

  6. 관리에서 자동 업그레이드 사용 설정 체크박스를 선택 취소합니다.

  7. 저장을 클릭하여 클러스터를 수정합니다.

노드 자동 업그레이드가 사용 설정된 클러스터 또는 노드 풀 만들기

gcloud

기본 노드 풀에 자동 업그레이드가 사용 설정된 클러스터를 만들려면 gcloud container clusters create 명령어에 --enable-autoupgrade 플래그를 지정합니다.

gcloud container clusters create CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

자동 업그레이드가 사용 설정된 노드 풀을 만들려면 gcloud container node-pools create 명령어에 --enable-autoupgrade 플래그를 지정합니다.

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone COMPUTE_ZONE \
    --enable-autoupgrade

콘솔

Google Cloud 콘솔을 사용하여 만들어진 클러스터와 노드 풀은 기본적으로 자동 업그레이드가 사용 설정됩니다. 클러스터와 노드 풀을 만드는 방법은 클러스터 만들기 또는 노드 풀 추가 및 관리를 참조하세요.

새 노드 풀의 자동 업그레이드를 사용 중지할 수 있습니다. 클러스터 만들기 페이지에서 수정하려는 노드 풀의 이름을 클릭한 다음 자동 업그레이드 사용 설정을 선택 해제합니다.

업그레이드 알림 수신

GKE에서 업그레이드 알림을 Pub/Sub에 게시하여 GKE로부터 클러스터 관련 정보를 받을 수 있는 채널을 제공합니다.

자세한 내용은 클러스터 업그레이드 알림 수신을 참조하세요.

일시 급증 업그레이드 매개변수 변경

일시 급증 업그레이드 매개변수 변경에 관해 자세히 알아보려면 일시 급증 업그레이드 구성을 참조하세요.

노드 풀 업그레이드 중 제어 실행

자동 업그레이드 및 수동으로 시작된 노드 풀 업그레이드 중 다음 작업을 수행할 수 있습니다.

노드 풀 업그레이드 취소

언제든지 업그레이드를 취소할 수 있습니다. 일시 급증 업그레이드를 취소하면 어떻게 되는지에 관해 자세히 알아보려면 일시 급증 업그레이드 취소를 참조하세요. 블루-그린 업그레이드를 취소하면 어떻게 되는지에 관해 자세히 알아보려면 블루-그린 업그레이드 취소를 참조하세요.

  1. 업그레이드 작업 ID를 가져옵니다.

    gcloud container operations list
    
  2. 업그레이드를 취소합니다.

    gcloud container operations cancel OPERATION_ID
    

gcloud container operations cancel 문서를 참조하세요.

노드 풀 업그레이드 재개

업그레이드 수동 시작을 다시 수행하고 원래 업그레이드에서 대상 버전을 지정하여 업그레이드를 재개할 수 있습니다.

예를 들어 버전 1.23.1-gke.100으로 진행 중인 업그레이드를 일시 중지한 경우 노드 풀에서 동일한 업그레이드를 다시 시작하고 대상 버전을 1.23.1-gke.100으로 지정하여 취소된 업그레이드를 재개할 수 있습니다.

업그레이드를 재개하면 어떻게 되는지에 관해 자세히 알아보려면 일시 급증 업그레이드 재개블루-그린 업그레이드를 참조하세요.

업그레이드를 재개하려면 다음 명령어를 사용합니다.

    gcloud container clusters upgrade CLUSTER_NAME \
      --node-pool=NODE_POOL_NAME \
      --cluster-version VERSION

다음을 바꿉니다.

  • NODE_POOL_NAME: 노드 풀 업그레이드를 재개하려는 노드 풀 이름입니다.
  • CLUSTER_NAME: 업그레이드를 재개하려는 노드 풀의 클러스터 이름입니다.
  • VERSION: 취소된 노드 풀 업그레이드의 대상 버전입니다.

자세한 내용은 gcloud container clusters upgrade 문서를 참조하세요.

노드 풀 업그레이드 롤백

노드 풀을 롤백하여 업그레이드된 노드를 노드 풀 업그레이드가 시작되기 전의 원래 상태로 다운그레이드할 수 있습니다.

진행 중인 업그레이드가 취소되었거나 업그레이드가 실패했거나 유지보수 기간 타임아웃으로 인해 업그레이드가 완료되지 않은 경우 rollback 명령어를 사용합니다. 또는 버전을 지정하려면 안내에 따라 노드 풀을 다운그레이드합니다.

노드 풀 업그레이드를 롤백하면 어떻게 되는지에 관해 자세히 알아보려면 일시 급증 업그레이드 롤백 또는 블루-그린 업그레이드 롤백을 참조하세요.

업그레이드를 롤백하려면 다음 명령어를 실행하세요.

gcloud container node-pools rollback NODE_POOL_NAME \
  --cluster CLUSTER_NAME

다음을 바꿉니다.

  • NODE_POOL_NAME: 노드 풀 업그레이드를 롤백하려는 노드 풀의 이름
  • CLUSTER_NAME: 업그레이드를 롤백하려는 노드 풀의 클러스터 이름

gcloud container node-pools rollback 문서를 참조하세요.

노드 풀 업그레이드 완료

블루-그린 업그레이드 전략을 사용하는 경우 배양(Soak) 시간 중 노드 풀 업그레이드를 완료하고 나머지 배양 시간은 건너뛸 수 있습니다.

노드 풀 업그레이드 완료 방식을 알아보려면 노드 풀 업그레이드 완료를 참조하세요.

블루-그린 업그레이드 전략을 사용할 때 업그레이드를 완료하려면 다음 명령어를 실행합니다.

gcloud container node-pools complete-upgrade NODE_POOL_NAME \
  --cluster CLUSTER_NAME

다음을 바꿉니다.

  • NODE_POOL_NAME: 업그레이드를 완료할 노드 풀의 이름입니다.
  • CLUSTER_NAME: 업그레이드를 완료할 노드 풀의 클러스터 이름입니다.

gcloud container node-pools complete-upgrade 문서를 참조하세요.

다음 단계