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

kubectl edit 명령을 사용하여 vmClass 정의를 편집하면 TKG 서비스 클러스터의 롤링 업데이트를 시작할 수 있습니다. 변경된 클래스를 기반으로 하는 새 노드가 롤아웃되고 이전 노드는 스핀다운됩니다.
참고: kubectl apply 명령을 사용하여 배포된 TKG 클러스터를 업데이트할 수는 없습니다.

사전 요구 사항

이 작업을 수행하려면 kubectl edit 명령을 사용해야 합니다. 이 명령은 KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 클러스터 매니페스트를 텍스트 편집기에서 엽니다. 파일을 저장하면 클러스터가 변경 사항으로 업데이트됩니다. kubectl용 편집기를 구성하려면 Kubectl용 텍스트 편집기 구성 항목을 참조하십시오.

프로시저

  1. 감독자로 인증합니다.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 대상 TKG 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 대상 TKG 클러스터에 describe 명령을 실행하고 VM 클래스를 확인합니다.
    v1alpha3 클러스터:
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    v1beta1 클러스터:
    kubectl describe cluster CLUSTER-NAME
  4. 클러스터가 프로비저닝된 경우 vSphere 네임스페이스에서 사용 가능한 VM 클래스를 나열하고 설명합니다.
    kubectl get virtualmachineclass
    참고: TKG 클러스터가 프로비저닝된 경우 대상 VM 클래스는 vSphere 네임스페이스와 연결되어야 합니다. VM 클래스를 vSphere 네임스페이스에 바인딩하는 방법에 대한 자세한 내용은 TKG 서비스 또는 VM 서비스 문서를 참조하십시오.
  5. 다음 명령을 실행하여 클러스터 매니페스트를 편집합니다.
    v1alpha3 클러스터:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    v1beta1 클러스터:
    kubectl edit cluster/CLUSTER-NAME
  6. VM 클래스 문자열을 변경하여 매니페스트를 편집합니다.
    예를 들어 v1alpah3 클러스터를 사용하는 경우 클러스터 매니페스트를 작업자 노드에 대해 guaranteed-medium VM 클래스 사용에서:
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
    작업자 노드에 대해 guaranteed-large VM 클래스를 사용으로 변경합니다.
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-large
    마찬가지로 v1beta1 클러스터를 프로비저닝한 경우 variables.vmclass 값을 대상 VM 클래스로 업데이트합니다.
  7. 변경 내용을 매니페스트 파일에 적용합니다.
    파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 TKG 컨트롤러는 새 노드 VM을 프로비저닝하고 이전 노드를 스핀 다운합니다.
  8. kubectl이 매니페스트 편집이 기록되었다고 보고하는지 확인합니다.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    참고: 오류가 발생하거나 kubectl이 클러스터 매니페스트가 편집되었다고 보고하지 않는 경우에는 KUBE_EDITOR 환경 변수를 사용하여 기본 텍스트 편집기를 올바르게 구성했는지 확인합니다. Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.
  9. 클러스터가 업데이트되었는지 확인합니다.
    v1alpha3 클러스터:
    kubectl get tanzukubernetescluster
    v1beta1 클러스터:
    kubectl get cluster