이 항목에서는 다음 방법을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터 및 독립형 관리 클러스터를 확장하는 방법을 설명합니다.
자동조정기: 독립형 관리 클러스터에 의해 배포된 워크로드 클러스터의 경우 클러스터 자동조정기를 사용하여 수요에 맞게 Worker 노드 수를 자동으로 조정할 수 있습니다. 클러스터 자동조정기를 사용하여 Worker 노드 확장/축소를 참조하십시오.
자동조정기를 사용하여 Supervisor 클러스터에 의해 배포된 워크로드 클러스터를 확장/축소할 수 없습니다.
수평으로 조정: 워크로드 또는 독립형 관리 클러스터의 경우 제어부 및 Worker 노드의 수를 수동으로 조정할 수 있습니다. 수평으로 클러스터 조정을 참조하십시오.
수직으로 조정: 워크로드 클러스터의 경우 제어부 및 Worker 노드의 크기를 수동으로 변경할 수 있습니다. 수직으로 클러스터 확장/축소를 참조하십시오.
참고노드 풀에서 노드 크기를 조정하려면 서로 다른 VM 유형의 노드 풀 관리의 노드 풀 업데이트를 참조하십시오.
클러스터 자동조정기는 워크로드 클러스터의 요구 사항에 따라 Kubernetes 클러스터를 자동으로 확장/축소하는 Kubernetes 프로그램입니다. 독립형 관리 클러스터에 의해 배포된 워크로드 클러스터에 대해서만 클러스터 자동조정기를 사용합니다.
클러스터 자동조정기에 대한 자세한 내용은 GitHub에서 다음 설명서를 참조하십시오.
기본적으로 클러스터 자동조정기는 Tanzu Kubernetes Grid에서 비활성화됩니다. 워크로드 클러스터에서 클러스터 자동조정기를 사용하도록 설정하려면 ENABLE_AUTOSCALER
를 true
로 설정하고 tanzu cluster create --file
을 실행하기 전에 클러스터 구성 파일 또는 환경 변수에서 AUTOSCALER_
옵션을 설정합니다.
중요클래스 기반 클러스터의 경우 클러스터 API의 클러스트 API에서 라벨 전파 문제로 인해 클래스 기반 워크로드 클러스터를 생성한 후에는 아래의 (수동으로 최소 및 최대 크기 주석 추가)[#cc 해결 방법]에 설명된 대로
min-size
개체에max-size
및MachineDeployment
주석을 수동으로 추가해야 합니다.
클러스터 구성 파일의 각 클러스터 자동조정기 구성 변수는 클러스터 자동조정기 도구의 매개 변수에 해당합니다. 이러한 변수 및 해당 기본값 목록은 구성 파일 변수 참조의 클러스터 자동조정기를 참조하십시오.
AUTOSCALER_*_SIZE
설정은 클러스터의 Worker 노드 수를 제한하지만, AUTOSCALER_MAX_NODES_TOTAL
은 Worker와 제어부의 모든 노드 수를 제한합니다.
클러스터의 Worker 노드 수에 따라 AUTOSCALER_*_SIZE
값을 설정합니다.
dev
클러스터)의 경우 AUTOSCALER_MIN_SIZE_0
및 AUTOSCALER_MAX_SIZE_0
을 설정합니다.prod
클러스터)의 경우 다음을 설정합니다.
AUTOSCALER_MIN_SIZE_0
및 AUTOSCALER_MAX_SIZE_0
AUTOSCALER_MIN_SIZE_1
및 AUTOSCALER_MAX_SIZE_1
AUTOSCALER_MIN_SIZE_2
및 AUTOSCALER_MAX_SIZE_2
다음은 클러스터 구성 파일의 클러스터 자동조정기 설정 예입니다. 클러스터를 배포한 후에는 이러한 값을 변경할 수 없습니다.
#! ---------------------------------------------------------------------
#! Autoscaler related configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
AUTOSCALER_MAX_NODES_TOTAL: "0"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
AUTOSCALER_MIN_SIZE_0:
AUTOSCALER_MAX_SIZE_0:
AUTOSCALER_MIN_SIZE_1:
AUTOSCALER_MAX_SIZE_1:
AUTOSCALER_MIN_SIZE_2:
AUTOSCALER_MAX_SIZE_2:
클러스터 자동조정기를 사용하도록 설정한 상태로 생성하는 각 워크로드 클러스터에 대해 Tanzu Kubernetes Grid는 관리 클러스터에 클러스터 자동조정기 배포를 생성합니다. 클러스터 자동조정기를 비활성화하려면 워크로드 클러스터와 연결된 클러스터 자동조정기 배포를 삭제합니다.
클러스터 자동조정기를 사용하도록 설정한 클래스 기반 워크로드 클러스터를 생성한 후에는 클러스트 API에서 라벨 전파 문제로 인해 클러스터 API의 min-size
와 max-size
주석을 MachineDeployment
에 수동으로 추가해야 합니다.
관리 클러스터에 kubectl
컨텍스트를 설정합니다.
kubectl config use-context MY-MGMT-CLUSTER-admin@MY-MGMT-CLUSTER
여기서 MY-MGMT-CLUSTER
는 관리 클러스터의 이름입니다.
MachineDeployment
개체를 나열하고 해당 AGE
값을 기록합니다.
kubectl get md
개체 이름은 -md
로 끝나고 뒤에 각 AZ(가용성 영역) 숫자가 붙습니다.
클러스터에서 새로 생성된 각 MachineDeployment
:
min-size
주석을 추가합니다.
kubectl annotate machinedeployment MD-NAME cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size="MIN-SIZE"
여기서:
MD-NAME
은 MachineDeployment
개체의 이름입니다(예: my-wc-md-0
).MIN-SIZE
는 AZ의 AUTOSCALER_MIN_SIZE_*
값입니다(예: 첫 번째 AZ에 배포되는 *-md0
의 AUTOSCALER_MIN_SIZE_0
값).max-size
주석을 추가합니다.
kubectl annotate machinedeployment MD-NAME cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size="MAX-SIZE"
여기서 MAX-SIZE
는 위와 같이 AZ의 최대 MachineDeployment
노드 수입니다.
클러스터 유형에 따라 두 가지 방법으로 TKG 클러스터를 수평으로 확장할 수 있습니다.
replicas
설정을 변경합니다.Tanzu CLI를 사용하여 수평으로 워크로드 클러스터를 확장/축소하려면 tanzu cluster scale
명령을 실행합니다.
중요Tanzu Kubernetes Grid 작업이 실행되는 동안 컨텍스트를 변경하거나
.kube-tkg/config
파일을 편집하지 마십시오.
--controlplane-machine-count
및 --worker-machine-count
옵션은 각각 새로운 수의 제어부 및 Worker 노드를 설정합니다.예:
클러스터를 제어부 노드 5개와 Worker 노드 10개로 확장하려면 다음을 수행합니다.
tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10
--controlplane-machine-count 1
과 함께 클러스터를 배포한 후 최대 3개의 제어부 노드로 확장한 경우, Tanzu Kubernetes Grid는 제어부에서 누적된 HA를 자동으로 사용하도록 설정합니다.
클러스터가 default
이외의 네임스페이스에서 실행되는 경우 --namespace
옵션을 포함해야 합니다.
tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10 --namespace=MY-NAMESPACE
독립형 관리 클러스터가 있는 vSphere: 독립형 관리 클러스터를 사용하여 배포된 vSphere 클러스터의 노드 수를 변경한 후에는 추가되거나 제거된 노드의 IP 주소에 대한 DHCP 예약을 예약하거나 해제해야 합니다. 이러한 예약을 수동으로 변경하려면 노드 DHCP 예약 및 끝점 DNS 레코드 구성(vSphere 전용)을 참조하십시오. DHCP 예약을 구성하는 방법에 대한 지침은 DHCP 서버 설명서를 참조하십시오.
Supervisor 클러스터가 있는 vSphere vSphere with Tanzu에서 실행되는 클러스터에서는 제어부 노드 1개 또는 제어부 노드 3개만 실행할 수 있습니다. 제어부 노드 수를 1에서 3으로 확장할 수 있지만 이 수를 3에서 1로 축소할 수는 없습니다.
워크로드 클러스터를 수직으로 확장/축소하는 절차는 클러스터 유형에 따라 다릅니다.
클러스터의 시스템 템플릿을 변경하는 클러스터 API 설명서의 인프라 시스템 템플릿 업데이트 절차를 따르십시오.
이 절차는 다음과 같이 구성할 수 있는 kubectl get
명령을 사용하여 클러스터의 기존 시스템 템플릿을 다운로드합니다.
kubectl get MACHINE-TEMPLATE-TYPE MACHINE-TEMPLATE-NAME -o yaml
형식 설명:
MACHINE-TEMPLATE-TYPE
:
VsphereMachineTemplate
AWSMachineTemplate
AzureMachineTemplate
MACHINE-TEMPLATE-NAME
은 크기 조정 중인 클러스터 노드의 시스템 템플릿 이름으로, 다음과 같은 형식을 따릅니다.
CLUSTER-NAME-control-plane
CLUSTER-NAME-worker
예:
kubectl get VsphereMachineTemplate monitoring-cluster-worker -o yaml
클래스 기반 클러스터를 수직으로 확장/축소하려면 아래의 클래스 기반 클러스터 확장/축소에 설명된 대로 클러스터 정의에서 machine
설정을 변경합니다.
topology
구성을 사용하여 클래스 기반 클러스터를 수평 또는 수직으로 확장/축소하려면 다음을 수행합니다.
kubectl
을 관리 클러스터의 컨텍스트로 설정합니다. 예:
kubectl config use-context management-cluster@admin
kubectl edit cluster CLUSTER-NAME
을 실행하고 controlPlane
및 worker
아래의 topology
블록에서 설정을 편집합니다.
수평으로 확장/축소하려면 replicas
설정을 변경합니다. - 수직으로 확장/축소하려면 machine
아래에서 설정을 변경합니다.
예:
- name: controlPlane
value:
replicas: 3
machine:
diskGiB: 20
memoryMiB: 8192
numCPUs: 4
- name: worker
value:
replicas: 5
machine:
diskGiB: 20
memoryMiB: 8192
numCPUs: 4