서로 다른 VM 유형의 노드 풀 관리

이 항목에서는 Supervisor가 있는 vSphere 8에서 Tanzu Kubernertes Grid v2.0이 생성한 워크로드 클러스터에서 노드 풀을 생성, 업데이트, 삭제하는 방법을 설명합니다. 노드 풀을 사용하면 단일 워크로드 클러스터가 다양한 유형의 노드를 포함하고 관리하여 다양한 애플리케이션의 다양한 요구 사항을 지원할 수 있습니다.

예를 들어 클러스터는 스토리지 용량이 큰 노드를 사용하여 데이터 저장소를 실행하고 더 얇은 노드를 사용하여 애플리케이션 요청을 처리할 수 있습니다.

노드 풀 정보

노드 풀은 워크로드 클러스터에서 사용하는 Worker 노드 집합의 속성을 정의합니다.

일부 노드 풀 속성은 기본 인프라에서 사용할 수 있는 VM 옵션에 따라 달라지지만 모든 클라우드 인프라의 모든 노드 풀은 다음 속성을 공유합니다.

  • name: 업데이트 및 삭제와 같은 작업에 사용되는 노드 풀의 고유 식별자입니다.
  • replicas: 풀의 노드 수이며 모두 동일한 속성을 공유합니다.
  • labels: 풀의 노드에 워크로드를 일치시킬 수 있도록 노드에서 메타데이터로 설정된 키/값 쌍입니다. 자세한 내용 및 예시 레이블은 Kubernetes 설명서에서 레이블 및 선택기를 참조하십시오.

모든 워크로드 클러스터는 첫 번째 원래 노드 풀로 생성되었습니다. 클러스터에 대한 추가 노드 풀을 만들 때 아래에 설명된 대로 첫 번째 노드 풀은 새 노드 풀 정의에 설정되지 않은 속성에 대한 기본값을 제공합니다.

노드 풀 나열

클러스터에서 현재 사용할 수 있는 노드 풀을 검사하려면 다음을 실행합니다.

tanzu cluster node-pool list CLUSTER-NAME

그러면 클러스터의 모든 노드 풀 목록과 각 노드 풀의 복제본 상태가 반환됩니다.

노드 풀 생성

클러스터에서 노드 풀을 생성하려면 다음을 수행합니다.

  1. 노드 풀의 구성 파일을 생성합니다. 샘플 구성 파일은 아래를 참조하십시오. 구성 속성의 전체 목록은 구성 속성을 참조하십시오.

  2. 구성 파일에 의해 정의된 노드 풀을 생성합니다.

    tanzu cluster node-pool set CLUSTER-NAME -f /PATH/TO/CONFIG-FILE
    

    옵션:

    • --namespace는 클러스터의 네임스페이스를 지정합니다. 기본값은 default입니다.
    • --machine-deployment-base는 새 노드 풀을 생성할 기본 MachineDeployment 개체를 지정합니다.
      • 이 값은 MachineDeployment에 있는 tanzu cluster get 출력에 나열된 Details 식별자로 설정합니다.
      • 기본값은 내부적으로 workerMDs[0]으로 표시되는 Worker 노드 MachineDeployment 개체 중 첫 번째입니다.

구성

위의 필수 name, replicas, labels 속성 외에도 vSphere의 노드 풀에 대한 구성 파일에는 vSphere에서 VM 구성과 관련된 선택적 속성을 정의하기 위해 vsphere 블록이 포함될 수 있습니다.

vSphere 클러스터의 노드 풀 정의 예:

name: tkg-wc-oidc-md-1
replicas: 4
labels:
  key1: value1
  key2: value2
vsphere:
  memoryMiB: 8192
  diskGiB: 64
  numCPUs: 4
  datacenter: dc0
  datastore: iscsi-ds-0
  storagePolicyName: name
  folder: vmFolder
  resourcePool: rp-1
  vcIP: 10.0.0.1
  template: templateName
  cloneMode: clone-mode
  network: network-name

vsphere 블록에 설정되지 않은 모든 값은 클러스터의 첫 번째 노드 풀에 있는 값에서 상속됩니다

vcIP 값의 경우 워크로드 클러스터 노드 풀이 클러스터의 제어부와 동일한 vCenter에서 실행되어야 합니다.

storageClass, tkr, vmClass 속성에 대한 자세한 내용은 vSphere with Tanzu 설명서의 TanzuKubernetesCluster v1alpha3 API - 주석을 참조하십시오.

구성 속성

아래 표에는 워크로드 클러스터의 노드 풀 구성 파일에서 정의할 수 있는 모든 속성이 나열되어 있습니다.

이름 유형 클러스터 개체 참고
name 문자열 임의 생성하거나 업데이트할 노드 풀의 이름.
replicas 정수 임의 노드 풀의 노드 수.
labels Map[string]string 임의 kubeletExtraArgs(‐‐node-labels)를 사용하여 노드에 설정할 레이블.
taints []corev1.Taint 임의 노드에 적용할 Taint.
vmClass 문자열 임의 Kubernetes vmClass의 이름. TKC 클러스터에 정의된 vmClass와 일치합니다. 이 클래스는 노드에서 사용할 수 있는 CPU 및 메모리를 설정합니다. 사용 가능한 VM 클래스를 나열하려면 kubectl describe virtualmachineclasses를 실행합니다.
storageClass 문자열 임의 노드 풀에 사용할 Kubernetes StorageClass 이름. 이 클래스는 노드의 루트 파일 시스템을 저장하는 디스크에 적용됩니다. 사용 가능한 스토리지 클래스를 나열하려면 kubectl describe storageclasses를 실행합니다.
volumes:
  • name, 문자열
  • mountPath, 문자열
  • capacity, corev1.ResourceList
  • storageClass, 문자열
[]object 임의 노드에 사용할 볼륨.
tkr:
  • reference, 문자열
개체 TKC 기반 노드 풀에 사용할 TKR의 이름. 예: v1.23.8—vmware.2-tkg.2.
tkrResolver 문자열 클래스 기반 클러스터 정의의 tkr-resolve 주석.
–base-machine-deployment 플래그가 설정되지 않은 경우에만 필요합니다.
nodeDrainTimeout metav1.Duration 임의 노드 추출 시간 초과.
vsphere 개체 임의 아래를 참조하십시오.
workerClass 문자열 클래스 기반 노드 풀에서 사용할 ClusterClass에서 workerClass를 선택합니다.
–base-machine-deployment 플래그가 설정되지 않은 경우에만 필요합니다.

노드 풀 업데이트

노드 풀의 노드 수만 변경해야 하는 경우 아래의 노드만 조정에서 Tanzu CLI 명령을 사용합니다. 레이블도 추가하려면 레이블 추가 및 노드 조정에 있는 절차를 따릅니다.

주의: 이러한 절차를 통해 노드 풀의 기존 레이블, 가용성 영역, 노드 인스턴스 유형(AWS 또는 Azure의 경우) 또는 가상 머신 속성(vSphere의 경우)을 변경하지 마십시오. 이로 인해 실행 워크로드에 심각한 부정적인 영향을 미칠 수 있습니다. 이러한 속성을 변경하려면 이러한 속성을 사용하여 새 노드 풀을 생성하고 원래 노드 풀을 삭제하기 전에 워크로드를 새 노드 풀로 마이그레이션합니다.

노드만 조정

노드 풀의 노드 수를 변경하려면 다음을 실행합니다.

tanzu cluster scale CLUSTER-NAME -p NODE-POOL-NAME -w NODE-COUNT

형식 설명:

  • CLUSTER-NAME은 워크로드 클러스터의 이름입니다.
  • NODE-POOL-NAME은 노드 풀의 이름입니다.
  • NODE-COUNT는 이 노드 풀에 속하는 노드 수(정수)입니다.

레이블 추가 및 노드 조정

노드 풀 구성 파일을 통해 노드 풀에 레이블을 추가하고 노드의 노드 크기를 동시에 지정할 수 있습니다.

  1. 업데이트하려는 노드 풀의 구성 파일을 엽니다.

  2. 이 노드 풀의 노드 수를 늘리거나 줄이는 경우 replicas 뒤에 숫자를 업데이트합니다.

  3. 레이블을 추가하는 경우 아래에 labels을 입력합니다. 예:

    labels:
      key1: value1
      key2: value2
    
  4. 노드 풀 구성 파일을 저장합니다.

  5. 터미널에서 다음을 실행합니다.

    tanzu cluster node-pool set CLUSTER-NAME -f /PATH/TO/CONFIG-FILE
    

    명령의 CLUSTER-NAME과 구성 파일의 name이 클러스터의 노드 풀과 일치하는 경우, 이 명령은 새 노드 풀을 만드는 대신 기존 노드 풀을 업데이트합니다.

노드 풀 삭제

노드 풀을 삭제하려면 다음을 실행합니다.

tanzu cluster node-pool delete CLUSTER-NAME -n NODE-POOL-NAME

여기서 CLUSTER-NAME은 워크로드 클러스터의 이름이고 NODE-POOL-NAME은 노드 풀의 이름입니다.

필요한 경우 --namespace를 사용하여 클러스터의 네임스페이스를 지정합니다. 기본값은 default입니다.

주의: 이 작업을 하기 전에 이러한 노드의 워크로드를 다른 노드로 마이그레이션합니다. tanzu cluster node-pool delete는 워크로드를 삭제하기 전에 노드에서 마이그레이션하지 않습니다.

check-circle-line exclamation-circle-line close-line
Scroll to top icon