kubectl patch
방법을 사용하여 Tanzu Kubernetes 클러스터에 대한 "인플레이스" 업데이트를 수행할 수 있습니다. kubectl patch
방법은 kubectl edit
명령을 사용하여 지원되는 클러스터 업데이트 작업 중 하나를 수행하는 방법의 대안입니다.
Kubectl Patch 명령 정보
kubectl patch
를 사용하여 TKGS v1alpha2 API를 준수하도록 클러스터 규격을 업데이트하지 마십시오. 이러한 유형의 업데이트에는
kubectl edit
를 사용해야 합니다.
클러스터 규격이 TKGS v1alpha2 API로 변환된 후 Tanzu Kubernetes 릴리스 업데이트의 내용을 참조하십시오.
kubectl patch
명령은 클러스터에 대한 "인플레이스" 업데이트를 수행합니다. 이 명령의 목적은 Kubernetes 버전을 업그레이드하는 방법을 제공하는 것이며 그 접근 방법이 여기에 설명되어 있습니다.
kubectl patch
명령에 대한 자세한 내용은 Kubernetes 설명서에서
kubectl patch를 사용하여 API 개체 인플레이스 업데이트를 참조하십시오.
여기에 설명된 방식은 UNIX 셸 명령 read
를 사용하여 키보드 입력을 가져와서 $PATCH
라는 변수에 할당합니다. kubectl patch
명령은 Kubernetes API를 호출하여 클러스터 매니페스트를 업데이트합니다. --type=merge
플래그는 데이터에 기존 매니페스트와 다른 속성만 포함되어 있다는 것을 나타냅니다.
패치 방법을 사용하여 Kubernetes 버전 업그레이드
롤링 업데이트를 트리거하는 가장 일반적인 방법은 .spec.distribution.version
및 .spec.distribution.fullVersion
속성을 사용하여 클러스터에 대한 Kubernetes 배포 버전을 변경하는 것입니다. 검색하는 동안 잠재적인 버전 불일치를 방지하기 위해 version
힌트를 업데이트하고 fullVersion
을 설정 해제하거나 null로 표시합니다.
$ read -r -d '' PATCH <<'EOF' spec: distribution: fullVersion: null # NOTE: Must set to null when updating just the version field version: v1.18.5 EOF
kubectl patch
명령을 사용하여 업데이트를 적용합니다. 클러스터 매니페스트에서 줄 바꿈 문자를 유지하려면 "$PATCH"
변수 앞뒤에 따옴표를 포함해야 합니다. TKG-CLUSTER-NAME 값을 클러스터의 실제 이름으로 바꿉니다.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
패치 방법을 사용하여 노드의 VirtualMachineClass를 변경하여 클러스터 업데이트
Tanzu Kubernetes 클러스터의 롤링 업데이트를 트리거하는 또 다른 방법은 노드 풀의 VirtualMachineClass
를 변경하는 것입니다. 즉, .spec.topology.controlPlane.class
속성 또는 .spec.topology.workers.class
속성을 변경하는 것입니다.
read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: class: best-effort-xlarge workers: class: best-effort-xlarge EOF
kubectl patch
명령을 사용하여 변수를 클러스터 이름으로 바꾸고 업데이트를 적용합니다.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched
패치 방법을 사용하여 노드의 StorageClass를 변경하여 클러스터 업데이트
Tanzu Kubernetes 클러스터의 롤링 업데이트를 트리거하는 또 다른 방법은 노드 풀의 StorageClass
를 변경하는 것입니다. 즉, .spec.topology.controlPlane.storageClass
속성 또는 .spec.topology.workers.storageClass
속성을 변경하는 것입니다.
$ read -r -d '' PATCH <<'EOF' spec: topology: controlPlane: storageClass: gc-storage-profile workers: storageClass: gc-storage-profile EOF
kubectl patch
명령을 사용하여 변수를 클러스터 이름으로 바꾸고 업데이트를 적용합니다.
kubectl patch --type=merge tanzukubernetescluster TKG-CLUSTER-NAME --patch "$PATCH"
tanzukubernetescluster.run.tanzu.vmware.com/TKG-CLUSTER-NAME patched