노드 풀은 Kubernetes 클러스터 내에서 구성이 모두 동일한 노드 그룹입니다. 노드 풀은 NodePool
사양을 사용합니다. 풀의 각 노드에는 노드 풀의 이름이 값으로 포함된 Kubernetes 노드 라벨이 있습니다.
기본적으로 모든 새 노드 풀은 컨트롤 플레인과 동일한 버전의 Kubernetes를 실행합니다.
Kubernetes 클러스터를 만들 때 지정하는 노드 수와 노드 유형이 클러스터의 첫 번째 노드 풀을 만듭니다. 다양한 크기와 유형의 노드 풀을 클러스터에 추가할 수 있습니다. 특정 노드 풀의 모든 노드는 서로 동일합니다.
커스텀 노드 풀은 추가 메모리 또는 로컬 디스크 공간 등 다른 것보다 더 많은 리소스가 필요한 포드를 예약할 때 유용합니다. 포드 예약을 더 세부적으로 제어해야 하는 경우 노드 taint를 사용할 수 있습니다.
전체 클러스터에 영향을 주지 않고 개별적으로 노드 풀을 생성하고 삭제할 수 있습니다. 노드 풀에서 단일 노드를 구성할 수 없습니다. 구성 변경사항은 노드 풀에 있는 모든 노드에 영향을 줍니다.
풀을 스케일 업 또는 스케일 다운하여 클러스터에서 노드 풀 크기를 조절할 수 있습니다. 노드 풀 축소는 풀 크기를 줄이면 GDC 시스템이 임의의 노드를 자동으로 드레인하고 제거하는 자동화된 프로세스입니다. 노드 풀을 축소할 때는 삭제할 특정 노드를 선택할 수 없습니다.
시작하기 전에
Kubernetes 클러스터에서 노드 풀을 보고 관리하려면 다음 역할이 있어야 합니다.
- 사용자 클러스터 관리자 (
user-cluster-admin
) - 사용자 클러스터 노드 뷰어 (
user-cluster-node-viewer
)
이러한 역할은 네임스페이스에 바인딩되지 않습니다.
노드 풀 추가하기
GDC 콘솔에서 Kubernetes 클러스터를 만들 때 클러스터 생성 초기화 전에 기본 노드 풀을 맞춤설정하고 추가 노드 풀을 만들 수 있습니다. 기존 Kubernetes 클러스터에 노드 풀을 추가해야 하는 경우 다음 단계를 완료하세요.
콘솔
- 탐색 메뉴에서 Kubernetes Engine > 클러스터를 선택합니다.
- 클러스터 목록에서 클러스터를 클릭합니다. 클러스터 세부정보 페이지가 표시됩니다.
- 노드 풀 > 노드 풀 추가를 선택합니다.
- 노드 풀의 이름을 할당합니다. 노드 풀을 만든 후에는 이름을 수정할 수 없습니다.
- 노드 풀에서 만들 워커 노드 수를 지정합니다.
- 워크로드 요구사항에 가장 적합한 머신 클래스를 선택합니다. 머신 클래스는 다음 설정에 표시됩니다.
- 머신 유형
- vCPU
- 메모리
- 저장을 클릭합니다.
API
대화형 편집기를 사용하여
kubectl
CLI로Cluster
커스텀 리소스 사양을 엽니다.kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ --kubeconfig MANAGEMENT_API_SERVER
다음을 바꿉니다.
KUBERNETES_CLUSTER_NAME
: 클러스터의 이름입니다.MANAGEMENT_API_SERVER
: Kubernetes 클러스터가 호스팅되는 영역 API 서버의 kubeconfig 경로입니다. 타겟 영역의 API 서버용 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.
nodePools
섹션에 새 항목을 추가합니다.nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEME
다음을 바꿉니다.
MACHINE_TYPE
: 노드 풀의 작업자 노드에 사용할 머신 유형입니다. 구성할 수 있는 항목은 사용 가능한 머신 유형을 참고하세요.NODE_POOL_NAME
: 노드 풀의 이름NUMBER_OF_WORKER_NODES
: 노드 풀에서 프로비저닝할 워커 노드 수입니다.TAINTS
: 이 노드 풀의 노드에 적용할 테인트입니다. 이 필드는 선택 사항입니다.LABELS
: 이 노드 풀의 노드에 적용할 라벨입니다. 키-값 쌍 목록을 포함합니다. 이 필드는 선택사항입니다.GPU_PARTITION_SCHEME
: GPU 워크로드를 실행하는 경우 GPU 파티셔닝 스키마입니다. 예를 들면mixed-2
입니다. 이 필드가 설정되지 않은 경우 GPU가 파티셔닝되지 않습니다. 사용 가능한 다중 인스턴스 GPU (MIG) 프로필은 지원되는 MIG 프로필을 참고하세요.
파일을 저장하고 편집기를 종료합니다.
노드 풀 보기
Kubernetes 클러스터에서 기존 노드 풀을 보려면 다음 단계를 완료하세요.
콘솔
- 탐색 메뉴에서 Kubernetes Engine > 클러스터를 선택합니다.
- 클러스터 목록에서 클러스터를 클릭합니다. 클러스터 세부정보 페이지가 표시됩니다.
- 노드 풀을 선택합니다.
클러스터에서 실행 중인 노드 풀 목록이 표시됩니다. 이 페이지에서 클러스터의 노드 풀을 관리할 수 있습니다.
API
특정 Kubernetes 클러스터의 노드 풀을 확인합니다.
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatuses
출력은 다음과 비슷합니다.
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]
노드 풀 삭제
노드 풀을 삭제하면 노드와 노드 경로가 삭제됩니다. 이러한 노드는 실행 중인 포드를 제거하고 다시 예약합니다. 포드에 특정 노드 선택기가 있는 경우, 클러스터의 다른 노드가 기준을 충족하지 못하면 포드는 예약할 수 없는 상태로 남아 있을 수 있습니다.
노드 풀을 삭제하기 전에 워커 노드가 3개 이상 있는지 확인하여 클러스터에 효과적으로 실행할 수 있는 컴퓨팅 공간이 충분한지 확인하세요.
노드 풀을 삭제하려면 다음 단계를 완료하세요.
콘솔
탐색 메뉴에서 Kubernetes Engine > 클러스터를 선택합니다.
삭제하려는 노드 풀을 호스팅하는 클러스터를 클릭합니다.
노드 풀을 선택합니다.
삭제할 노드 풀 옆에 있는 delete 삭제를 클릭합니다.
API
대화형 편집기를 사용하여
kubectl
CLI로Cluster
커스텀 리소스 사양을 엽니다.kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \ --kubeconfig MANAGEMENT_API_SERVER
다음을 바꿉니다.
KUBERNETES_CLUSTER_NAME
: 클러스터의 이름입니다.MANAGEMENT_API_SERVER
: Kubernetes 클러스터가 호스팅되는 영역 API 서버의 kubeconfig 경로입니다. 타겟 영역의 API 서버용 kubeconfig 파일을 아직 생성하지 않은 경우 로그인에서 자세한 내용을 확인하세요.
nodePools
섹션에서 노드 풀 항목을 삭제합니다. 예를 들어 다음 스니펫에서는machineTypeName
,name
,nodeCount
필드를 삭제해야 합니다.nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3
삭제할 노드 풀의 모든 필드를 삭제해야 합니다.
파일을 저장하고 편집기를 종료합니다.