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

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

사전 요구 사항

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

프로시저

  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 환경 변수를 사용하여 기본 텍스트 편집기를 올바르게 구성했는지 확인합니다. Kubectl용 텍스트 편집기 구성의 내용을 참조하십시오.
  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