노드 수를 변경하여 수평으로 또는 노드를 호스팅하는 가상 시스템 클래스를 변경하여 수직으로 Tanzu Kubernetes 클러스터를 확장/축소할 수 있습니다.
지원되는 확장/축소 작업
노드 | 수평 확장 | 수평 축소 | 수직 확장/축소 |
---|---|---|---|
제어부 | 예 | 아니요 | 예 |
작업자 | 예 | 예 | 예 |
- 클러스터 노드를 수직으로 확장/축소하는 동안은 사용 가능한 리소스가 부족하여 노드에서 워크로드가 더 이상 실행되지 못할 수 있습니다. 이러한 이유로 인해 수평으로 확장/축소하는 방식을 선호하기도 합니다.
- VM 클래스는 변경할 수 없습니다. 클러스터에서 사용되는 VM 클래스를 편집한 후 Tanzu Kubernetes 클러스터를 확장하면, 새 클러스터 노드는 업데이트된 클래스 정의를 사용하지만 기존 클러스터 노드는 초기 클래스 정의를 계속 사용하여 불일치가 발생합니다. Tanzu Kubernetes 클러스터에 대한 가상 시스템 클래스의 내용을 참조하십시오.
확장/축소 사전 요구 사항: Kubectl 편집 구성
Tanzu Kubernetes 클러스터 크기를 조정하려면 kubectl edit tanzukubernetescluster/CLUSTER-NAME
명령을 사용하여 클러스터 매니페스트를 업데이트합니다. kubectl edit 명령은 KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트를 엽니다. 환경 변수 설정에 대한 지침은 kubectl용 기본 텍스트 편집기 지정 항목을 참조하십시오.
kubectl
은 편집 내용이 기록되었다고 보고하고 이 변경 내용으로 클러스터가 업데이트됩니다.
kubectl edit tanzukubernetescluster/tkgs-cluster-1 tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
제어부 확장
- 감독자 클러스터로 인증합니다.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes 클러스터를 실행 중인 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context tkgs-cluster-ns
- 네임스페이스에서 실행 중인 Kubernetes 클러스터를 나열합니다.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 대상 클러스터에서 실행 중인 노드 수를 구합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
예를 들어 다음 클러스터에는 제어부 노드 1개와 작업자 노드 3개가 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 1 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
명령을 사용하여 편집할 클러스터 매니페스트를 로드합니다.kubectl edit tanzukubernetescluster/tkgs-cluster-1
KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트가 열립니다.
spec.topology.controlPlane.count
매개 변수를 찾아서 노드 수를 1에서 3으로 늘립니다.... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.
파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 감독자 클러스터의 가상 시스템 서비스는 새 작업자 노드를 프로비저닝합니다.
- 새 노드가 추가되었는지 확인합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
확장된 제어부에 이제 3개의 노드가 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
작업자 노드 확장
kubectl을 사용하여 작업자 노드 수를 늘려서 Tanzu Kubernetes 클러스터를 확장할 수 있습니다.
- 감독자 클러스터로 인증합니다.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes 클러스터를 실행 중인 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context tkgs-cluster-ns
- 네임스페이스에서 실행 중인 Kubernetes 클러스터를 나열합니다.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 대상 클러스터에서 실행 중인 노드 수를 구합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
예를 들어 다음 클러스터에는 제어부 노드 3개와 작업자 노드 3개가 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
명령을 사용하여 편집할 클러스터 매니페스트를 로드합니다.kubectl edit tanzukubernetescluster/tkgs-cluster-1
KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트가 열립니다.
spec.topology.workers.count
매개 변수를 찾아서 노드 수를 늘립니다.... workers: count: 3 ...
... workers: count: 4 ...
- 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.
파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 감독자 클러스터의 가상 시스템 서비스는 새 작업자 노드를 프로비저닝합니다.
- 새 작업자 노드가 추가되었는지 확인합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
확장한 후에는 클러스터에 작업자 노드가 4개 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
작업자 노드 축소
작업자 노드 수를 줄여서 Tanzu Kubernetes 클러스터를 축소할 수 있습니다. 제어부에서는 확장/축소가 지원되지 않습니다.
- 감독자 클러스터로 인증합니다.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes 클러스터를 실행 중인 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context tkgs-cluster-ns
- 네임스페이스에서 실행 중인 Kubernetes 클러스터를 나열합니다.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 대상 클러스터에서 실행 중인 노드 수를 구합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
예를 들어 다음 클러스터에는 제어부 노드 3개와 작업자 노드 3개가 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
명령을 사용하여 편집할 클러스터 매니페스트를 로드합니다.kubectl edit tanzukubernetescluster/tkgs-cluster-1
KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트가 열립니다.
spec.topology.workers.count
매개 변수를 찾아서 노드 수를 늘립니다.... workers: count: 4 ...
... workers: count: 2 ...
- 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.
파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 감독자 클러스터의 가상 시스템 서비스는 새 작업자 노드를 프로비저닝합니다.
- 작업자 노드가 제거되었는지 확인합니다.
kubectl get tanzukubernetescluster tkgs-cluster-1
축소한 후에는 클러스터에 작업자 노드가 2개 있습니다.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 2 v1.18.5+vmware.1-tkg.1.886c781 1d running
클러스터를 수직으로 확장/축소
클러스터 노드를 호스팅하는 데 사용되는 가상 시스템 클래스를 변경하여 Tanzu Kubernetes 클러스터를 수직으로 확장/축소할 수 있습니다. 수직 확장/축소는 제어부 및 작업자 노드 모두에서 지원됩니다.
Tanzu Kubernetes Grid 서비스는 서비스에 내장된 롤링 업데이트 메커니즘을 통해 클러스터 노드를 수직으로 확장/축소하도록 지원합니다. VirtualMachineClass
정의를 변경하는 경우 이 서비스는 새 클래스를 사용하여 새 노드를 롤아웃하고 이전 노드를 스핀 다운합니다. Tanzu Kubernetes 클러스터 업데이트의 내용을 참조하십시오.
- 감독자 클러스터로 인증합니다.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes 클러스터를 실행 중인 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config use-context tkgs-cluster-ns
- 네임스페이스에서 실행 중인 Kubernetes 클러스터를 나열합니다.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- 대상 Tanzu Kubernetes 클러스터를 설명하고 VM 클래스를 확인합니다.
kubectl describe tanzukubernetescluster tkgs-cluster-2
예를 들어 다음 클러스터는 best-effort-small VM 클래스를 사용합니다.
Spec: ... Topology: Control Plane: Class: best-effort-small ... Workers: Class: best-effort-small ...
- 사용 가능한 VM 클래스를 나열하고 설명합니다.
kubectl get virtualmachineclassbinding
kubectl describe virtualmachineclassbinding
- 대상 클러스터 매니페스트를 편집하기 위해 엽니다.
kubectl edit tanzukubernetescluster/tkgs-cluster-2
KUBE_EDITOR 또는 EDITOR 환경 변수로 정의된 텍스트 편집기에서 클러스터 매니페스트가 열립니다.
- VM 클래스를 변경하여 매니페스트를 편집합니다.
예를 들어 제어부 및 작업자 노드에 대해
guaranteed-xlarge
VM 클래스를 사용하도록 클러스터 매니페스트를 편집합니다.spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- 변경 내용을 적용하려면 텍스트 편집기에서 파일을 저장합니다. 취소하려면 저장하지 않고 편집기를 닫습니다.
파일을 저장하면 kubectl이 변경 내용을 클러스터에 적용합니다. 백그라운드에서 Tanzu Kubernetes Grid 서비스는 새 노드를 프로비저닝하고 이전 노드를 삭제합니다. 롤링 업데이트 프로세스에 대한 설명은 Tanzu Kubernetes Grid 서비스 클러스터 업데이트 정보 항목을 참조하십시오.
- 클러스터가 업데이트되고 있는지 확인합니다.
kubectl get tanzukubernetescluster NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 21h updating