이 작업에서는 TKG 클러스터 매니페스트를 편집하여 TKG 클러스터에 대한 Tanzu Kubernetes 릴리스 버전을 업데이트하는 방법에 대해 설명합니다.

kubectl edit 명령을 사용하여 Tanzu Kubernetes 릴리스 버전을 업그레이드하면 TKGS 클러스터의 롤링 업데이트를 시작할 수 있습니다.
참고: kubectl apply 명령을 사용하여 배포된 클러스터의 TKR 버전을 업데이트할 수는 없습니다.

사전 요구 사항

이 작업을 수행하려면 kubectl edit 명령을 사용해야 합니다. 이 명령은 KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 클러스터 매니페스트를 텍스트 편집기에서 엽니다. 파일을 저장하면 클러스터가 변경 사항으로 업데이트됩니다. kubectl edit 명령을 실행할 수 있도록 kubectl에 대한 편집기를 구성하려면 #GUID-104C2238-1D65-402A-85F0-742DAB49AB1A의 내용을 참조하십시오.

프로시저

  1. 감독자로 인증합니다.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. 대상 워크로드 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. 대상 TKG 클러스터 및 버전을 가져옵니다.
    v1alpha3 클러스터:
    kubectl get tanzukubernetescluster
    v1beta1 클러스터:
    kubectl get cluster
  4. 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
    kubectl get tanzukubernetesreleases
  5. 다음 명령을 실행하여 클러스터 매니페스트를 편집합니다.
    v1alpha3 클러스터:
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    v1beta1 클러스터:
    kubectl edit cluster/CLUSTER-NAME
  6. Tanzu Kubernetes 릴리스 문자열을 업데이트하여 매니페스트를 편집합니다.
    예를 들어 v1alpha3 클러스터의 경우 TKR v1.25.7에서:
    topology:
      controlPlane:
       replicas: 1
       storageClass: vsan-default-storage-policy
       tkr:
        reference:
         name: v1.25.7---vmware.3-fips.1-tkg.1
       vmClass: guaranteed-large
      nodePools:
      - name: worker-tkg-pool01
       replicas: 3
       storageClass: vsan-default-storage-policy
       tkr:
        reference:
         name: v1.25.7---vmware.3-fips.1-tkg.1
       vmClass: guaranteed-large
       volumes:
       - capacity:
         storage: 128Gi
        mountPath: /var/lib/containerd
        name: containerd
    TKR v1.26.5로 변경하는 경우:
    topology:
      controlPlane:
       replicas: 1
       storageClass: vsan-default-storage-policy
       tkr:
        reference:
         name: v1.26.5---vmware.2-fips.1-tkg.1
       vmClass: guaranteed-large
      nodePools:
      - name: worker-tkg-pool01
       replicas: 3
       storageClass: vsan-default-storage-policy
       tkr:
        reference:
         name: v1.26.5---vmware.2-fips.1-tkg.1
       vmClass: guaranteed-large
       volumes:
       - capacity:
         storage: 128Gi
        mountPath: /var/lib/containerd
        name: containerd
    참고: 제어부 및 작업자 노드의 TKR 버전이 동일해야 합니다. 모든 TKr 인스턴스를 업데이트하거나, 제어부 버전을 업데이트하고 작업자 노드에서 TKR 이름을 제거할 수 있습니다.
    예를 들어 v1beta1 클러스터의 경우 TKR v1.25.7에서:
    apiVersion: cluster.x-k8s.io/v1beta1
      ...
      topology:
        class: tanzukubernetescluster
        version: v1.25.7---vmware.3-fips.1-tkg.1
        controlPlane:
          replicas: 3
        workers:
          ...
        variables:
          ...
     
    TKR v1.26.5로 변경하는 경우:
    apiVersion: cluster.x-k8s.io/v1beta1
      ...
      topology:
        class: tanzukubernetescluster
        version: v1.26.5---vmware.2-fips.1-tkg.1
        controlPlane:
          replicas: 3
        workers:
          ...
        variables:
          ...
  7. 변경 내용을 매니페스트 파일에 적용합니다.
    파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 감독자의 가상 시스템 서비스는 새 작업자 노드를 프로비저닝합니다.
  8. kubectl이 매니페스트 편집이 기록되었다고 보고하는지 확인합니다.
    kubectl edit tanzukubernetescluster/tkg-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkg-cluster-1 edited
    참고: 오류가 발생하거나 kubectl이 클러스터 매니페스트가 편집되었다고 보고하지 않는 경우에는 KUBE_EDITOR 환경 변수를 사용하여 기본 텍스트 편집기를 올바르게 구성했는지 확인합니다. #GUID-104C2238-1D65-402A-85F0-742DAB49AB1A의 내용을 참조하십시오.
  9. 클러스터가 업데이트되고 있는지 확인합니다.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.26.5---vmware.2-fips.1-tkg.1  21h   updating
  10. 클러스터가 업데이트되었는지 확인합니다.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.26.5---vmware.2-fips.1-tkg.1   22h   running