클러스터 노드를 호스팅하는 데 사용되는 가상 시스템 클래스를 변경하여 Tanzu Kubernetes 클러스터를 업데이트할 수 있습니다.

Tanzu Kubernetes Grid 서비스VirtualMachineClass 정의를 변경하여 클러스터 업데이트를 지원합니다. 이렇게 하면 서비스는 새 클래스를 사용하여 새 노드를 롤아웃하고 이전 노드를 스핀 다운합니다. Tanzu Kubernetes Grid 서비스 클러스터 업데이트 정보의 내용을 참조하십시오.
참고: VirtualMachineClassTanzu Kubernetes 클러스터가 프로비저닝된 vSphere 네임스페이스에 바인딩되어야 합니다. Tanzu Kubernetes 클러스터에 대한 가상 시스템 클래스의 내용을 참조하십시오.

사전 요구 사항

이 작업은 kubectl edit tanzukubernetescluster/CLUSTER-NAME 명령을 사용하여 클러스터 매니페스트를 업데이트합니다. kubectl edit 명령은 KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트를 엽니다. 파일을 저장하면 클러스터가 변경 사항으로 업데이트됩니다. kubectl용 기본 텍스트 편집기 지정의 내용을 참조하십시오.

프로시저

  1. 감독자 클러스터로 인증합니다. vCenter Single Sign-On 사용자로 감독자 클러스터에 연결의 내용을 참조하십시오.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 대상 Tanzu Kubernetes 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 대상 Tanzu Kubernetes 클러스터를 설명하고 VM 클래스를 확인합니다.
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    예를 들어 이 클러스터는 best-effort-medium VM 클래스를 사용합니다.
    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        Workers:
          Class:          best-effort-medium
          ...
    
  4. 네임스페이스에서 사용 가능한 VM 클래스를 나열하고 설명합니다.
    kubectl get virtualmachineclassbindings
    참고: kubectl get virtualmachineclasses 명령은 감독자 클러스터에 있는 모든 VM 클래스를 나열합니다. VM 클래스를 vSphere 네임스페이스와 연결해야 하기 때문에 대상 네임스페이스에 바인딩된 VM 클래스만 사용할 수 있습니다.
  5. 다음 명령을 실행하여 클러스터 매니페스트를 편집합니다.
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. 검색 중에 잠재적인 버전 불일치를 방지하기 위해 version 문자열을 변경하고 fullVersion을 설정 해제하거나 null로 표시하여 매니페스트를 편집합니다.
    예를 들어 제어부 및 작업자 노드에 대해 best-effort-medium VM 클래스를 사용하여 클러스터 매니페스트를 변경합니다.
    spec:
      topology:
        controlPlane:
          class: best-effort-medium
          ...
        workers:
          class: best-effort-medium
          ...
    
    제어부 및 작업자 노드에 대해 guaranteed-large VM 클래스를 사용하려면 다음을 수행합니다.
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        workers:
          class: guaranteed-large
          ...
    
  7. 변경 내용을 매니페스트 파일에 적용합니다.
    파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 Tanzu Kubernetes Grid 서비스는 새 노드 VM을 프로비저닝하고 이전 노드를 스핀 다운합니다.
  8. kubectl이 매니페스트 편집이 기록되었다고 보고하는지 확인합니다.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    참고: 오류가 발생하거나 kubectl이 클러스터 매니페스트가 편집되었다고 보고하지 않는 경우에는 KUBE_EDITOR 환경 변수를 사용하여 기본 텍스트 편집기를 올바르게 구성했는지 확인합니다. kubectl용 기본 텍스트 편집기 지정의 내용을 참조하십시오.
  9. 클러스터가 업데이트되고 있는지 확인합니다.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   21h   updating
  10. 클러스터가 업데이트되었는지 확인합니다.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   22h   running