이 작업에서는 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의 내용을 참조하십시오.
프로시저
- 감독자로 인증합니다.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- 대상 워크로드 클러스터가 프로비저닝된 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context SUPERVISOR-NAMESPACE
- 대상 TKG 클러스터 및 버전을 가져옵니다.
v1alpha3 클러스터:
kubectl get tanzukubernetescluster
v1beta1 클러스터:
kubectl get cluster
- 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
kubectl get tanzukubernetesreleases
- 다음 명령을 실행하여 클러스터 매니페스트를 편집합니다.
v1alpha3 클러스터:
kubectl edit tanzukubernetescluster/CLUSTER-NAME
v1beta1 클러스터:
kubectl edit cluster/CLUSTER-NAME
- 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:
...
- 변경 내용을 매니페스트 파일에 적용합니다.
파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 감독자의 가상 시스템 서비스는 새 작업자 노드를 프로비저닝합니다.
- kubectl이 매니페스트 편집이 기록되었다고 보고하는지 확인합니다.
kubectl edit tanzukubernetescluster/tkg-cluster-1
tanzukubernetescluster.run.tanzu.vmware.com/tkg-cluster-1 edited
- 클러스터가 업데이트되고 있는지 확인합니다.
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
- 클러스터가 업데이트되었는지 확인합니다.
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