노드 풀 업그레이드

이 문서에서는 사용자 클러스터에서 제어 영역과 선택한 노드 풀을 업그레이드하는 방법을 보여줍니다.

선택한 노드 풀 업그레이드는 Ubuntu 및 COS 노드 풀에서 지원되지만 Windows 노드 풀에서는 지원되지 않습니다.

특정 상황에서는 사용자 클러스터의 노드 풀 중 일부만 업그레이드하려는 경우가 있습니다. 예를 들어 먼저 트래픽이 적거나 가장 중요하지 않은 워크로드를 실행하는 노드 풀을 업그레이드할 수 있습니다. 워크로드가 새 버전에서 올바르게 실행되었다고 확신하면 결국 모든 노드 풀이 업그레이드될 때까지 추가 노드 풀을 업그레이드할 수 있습니다.

관리자 워크스테이션 업그레이드

관리자 워크스테이션을 업그레이드 대상 버전으로 업그레이드합니다. 자세한 내용은 VMware용 GKE 업그레이드를 참조하세요.

vSphere로 새 OS 이미지 가져오기

gkectl prepare를 실행하여 OS 이미지를 vSphere로 가져옵니다.

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

다음을 바꿉니다.

  • TARGET_VERSION: 업그레이드의 대상 버전

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로

사용 가능한 버전 확인

다음 명령어를 실행하여 업그레이드할 수 있는 버전을 확인합니다.

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

출력에 현재 버전과 업그레이드에 사용할 수 있는 버전이 표시됩니다. 예를 들면 다음과 같습니다.

gkectl version: 1.14.0-gke.x

current admin cluster version: 1.13.1-gke.35

current user cluster versions:
- 1.13.1-gke.35

available admin cluster versions:
- 1.13.1-gke.35

available user cluster versions:
- 1.13.1-gke.35
- 1.14.0-gke.x

사용자 클러스터 제어 영역과 선택한 노드 풀 업그레이드

사용자 클러스터 업그레이드의 안내를 따릅니다. 사용자 클러스터 구성 파일에서 gkeOnPremVersion을 업그레이드 대상 버전으로 설정합니다. 업그레이드하려는 각 노드 풀에 대해 nodePools.nodePool[i].gkeOnPremVersion 필드를 삭제하거나 빈 문자열로 설정합니다. 업그레이드하지 않을 각 노드 풀에 대해 nodePools.nodePool[i].gkeOnPremVersion을 현재 버전으로 설정합니다.

예를 들어 사용자 클러스터 버전이 1.13.1-gke.35이고 노드 풀이 두 개(pool-1pool-2) 있다고 가정합니다. 또한 제어 영역과 pool-1을 1.14.0-gke.x로 업그레이드하되 pool-2를 버전 1.13.1-gke.35로 유지한다고 가정합니다.

다음은 사용자 클러스터 구성 파일의 일부입니다. 여기에서 제어 영역과 pool-1이 버전 1.14.0-gke.x로 업그레이드되도록 지정하지만 pool-2는 현재 버전인 1.13.1-gke.35 버전으로 유지됩니다.

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: 1.13.1-gke.35
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

사용자 클러스터 업그레이드에 설명된 대로 업그레이드를 계속합니다.

추가 노드 풀 업그레이드

pool-1를 사용하여 모든 요소가 제대로 작동하며, 이제 pool-2를 업그레이드한다고 가정해 보겠습니다.

사용자 클러스터 구성 파일의 pool-2 아래에서 gkeOnPremVersion을 삭제하거나 빈 문자열로 설정합니다.

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

gkectl update cluster를 실행하여 변경사항을 적용합니다.

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

다음을 바꿉니다.

  • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터 kubeconfig 파일의 경로

  • USER_CLUSTER_CONFIG: 사용자 클러스터 구성 파일의 경로

문제 해결

노드 풀을 업그레이드한 후 문제가 발생하면 이전 버전으로 롤백할 수 있습니다. 자세한 내용은 업그레이드 후 노드 풀 롤백을 참조하세요.