노드 풀 관리하기

노드 풀은 Kubernetes 클러스터 내에서 구성이 모두 동일한 노드 그룹입니다. 노드 풀은 NodePool 사양을 사용합니다. 풀의 각 노드에는 노드 풀의 이름이 값으로 포함된 Kubernetes 노드 라벨이 있습니다. 기본적으로 모든 새 노드 풀은 컨트롤 플레인과 동일한 버전의 Kubernetes를 실행합니다.

사용자 클러스터를 만들 때 지정하는 노드 수와 노드 유형이 클러스터의 첫 번째 노드 풀을 만듭니다. 다양한 크기와 유형의 노드 풀을 클러스터에 추가할 수 있습니다. 특정 노드 풀의 모든 노드는 서로 동일합니다.

커스텀 노드 풀은 추가 메모리 또는 로컬 디스크 공간 등 다른 것보다 더 많은 리소스가 필요한 포드를 예약할 때 유용합니다. 포드 예약을 더 세부적으로 제어해야 하는 경우 노드 taint를 사용할 수 있습니다.

전체 클러스터에 영향을 주지 않고 개별적으로 노드 풀을 생성하고 삭제할 수 있습니다. 노드 풀에서 단일 노드를 구성할 수 없습니다. 구성 변경사항은 노드 풀에 있는 모든 노드에 영향을 줍니다.

풀을 스케일 업 또는 스케일 다운하여 클러스터에서 노드 풀 크기를 조절할 수 있습니다. 노드 풀 축소는 풀 크기를 줄이면 GDC 시스템이 임의의 노드를 자동으로 드레인하고 제거하는 자동화된 프로세스입니다. 노드 풀을 축소할 때는 삭제할 특정 노드를 선택할 수 없습니다.

시작하기 전에

사용자 클러스터에서 노드 풀을 관리하려면 사용자 클러스터 관리자 역할 (user-cluster-admin 역할)이 있어야 합니다.

노드 풀 추가하기

GDC 콘솔에서 사용자 클러스터를 만들 때 클러스터 생성이 초기화되기 전에 기본 노드 풀을 맞춤설정하고 추가 노드 풀을 만들 수 있습니다. 기존 사용자 클러스터에 노드 풀을 추가해야 하는 경우 다음 단계를 완료하세요.

콘솔

  1. 탐색 메뉴에서 클러스터를 선택합니다.
  2. 클러스터 목록에서 클러스터를 클릭합니다. 클러스터 세부정보 페이지가 표시됩니다.
  3. 노드 풀 > 노드 풀 추가를 선택합니다.
  4. 노드 풀의 이름을 할당합니다. 노드 풀을 만든 후에는 이름을 수정할 수 없습니다.
  5. 노드 풀에서 만들 워커 노드 수를 지정합니다.
  6. 워크로드 요구사항에 가장 적합한 머신 클래스를 선택합니다. 머신 클래스는 다음 설정에 표시됩니다.
    • 머신 유형
    • vCPU
    • 메모리
  7. 선택사항: Kubernetes 키-값 쌍 라벨을 추가하여 노드 풀의 리소스를 정리합니다.
  8. 저장을 클릭합니다.

API

  1. 대화형 편집기를 사용하여 kubectl CLI로 Cluster 커스텀 리소스 사양을 엽니다.

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    다음을 바꿉니다.

    • USER_CLUSTER_NAME: 사용자 클러스터의 이름입니다.
    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터의 kubeconfig 파일 경로입니다.
  2. nodePools 섹션에 새 항목을 추가합니다.

    nodePools:
    ...
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
    

    다음을 바꿉니다.

    • MACHINE_TYPE: 노드 풀의 작업자 노드에 사용할 머신 유형입니다. 구성할 수 있는 항목은 사용 가능한 머신 유형을 참고하세요.
    • NODE_POOL_NAME: 노드 풀의 이름
    • NUMBER_OF_WORKER_NODES: 노드 풀에서 프로비저닝할 워커 노드 수입니다.
    • TAINTS: 이 노드 풀의 노드에 적용할 테인트입니다. 이 필드는 선택 사항입니다.
    • LABELS: 이 노드 풀의 노드에 적용할 라벨입니다. 키-값 쌍 목록을 포함합니다. 이 필드는 선택사항입니다.
  3. 파일을 저장하고 편집기를 종료합니다.

노드 풀 보기

사용자 클러스터에서 기존 노드 풀을 보려면 다음 단계를 완료하세요.

콘솔

  1. 탐색 메뉴에서 클러스터를 선택합니다.
  2. 클러스터 목록에서 클러스터를 클릭합니다. 클러스터 세부정보 페이지가 표시됩니다.
  3. 노드 풀을 선택합니다.

클러스터에서 실행 중인 노드 풀 목록이 표시됩니다. 이 페이지에서 클러스터의 노드 풀을 관리할 수 있습니다.

API

  • 특정 사용자 클러스터의 노드 풀을 확인합니다.

    kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \
        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개 이상 있는지 확인하여 클러스터에 효과적으로 실행할 수 있는 컴퓨팅 공간이 충분한지 확인하세요.

노드 풀을 삭제하려면 다음 단계를 완료하세요.

콘솔

  1. 탐색 메뉴에서 클러스터를 선택합니다.

  2. 삭제하려는 노드 풀을 호스팅하는 클러스터를 클릭합니다.

  3. 노드 풀을 선택합니다.

  4. 삭제할 노드 풀 옆에 있는 삭제를 클릭합니다.

API

  1. 대화형 편집기를 사용하여 kubectl CLI로 Cluster 커스텀 리소스 사양을 엽니다.

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
          --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    다음을 바꿉니다.

    • USER_CLUSTER_NAME: 사용자 클러스터의 이름입니다.
    • ADMIN_CLUSTER_KUBECONFIG: 관리자 클러스터의 kubeconfig 파일 경로입니다.
  2. nodePools 섹션에서 노드 풀 항목을 삭제합니다. 예를 들어 다음 스니펫에서는 machineTypeName, name, nodeCount 필드를 삭제해야 합니다.

    nodePools:
    ...
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    삭제할 노드 풀의 모든 필드를 삭제해야 합니다.

  3. 파일을 저장하고 편집기를 종료합니다.

작업자 노드 머신 유형

Google Distributed Cloud (GDC) 에어 갭 어플라이언스에서 사용자 클러스터를 만들면 클러스터에서 컨테이너 워크로드를 실행하는 노드 풀이 생성됩니다. 컨테이너 워크로드 요구사항에 따라 노드를 프로비저닝하고 요구사항이 변경되면 업데이트할 수 있습니다.

GDC는 노드 풀을 추가할 때 선택할 수 있는 작업자 노드용 사전 정의된 머신 유형을 제공합니다.

사용 가능한 머신 유형

GDC는 CPU, 메모리, GPU를 포함한 사용자 클러스터 노드의 일부 매개변수로 머신 유형을 정의합니다. GDC에는 다양한 용도의 여러 머신 유형이 있습니다. 예를 들어 사용자 클러스터는 범용 컨테이너 워크로드에 n2-standard-2-gdc를 사용합니다. 메모리 최적화 목적의 머신 유형(예: n2-highcpu-8-gdc)도 찾을 수 있습니다. 딥 러닝 컨테이너를 실행하려면 a2-highgpu-1g-gdc와 같은 GPU 머신을 프로비저닝해야 합니다.

다음은 사용자 클러스터 워커 노드에 사용할 수 있는 모든 GDC 사전 정의된 머신 유형의 목록입니다.

이름 vCPU 메모리 GPU 수
n2-standard-2-gdc 2 8G 해당 사항 없음
n2-standard-4-gdc 4 16G 해당 사항 없음
n2-highmem-4-gdc 4 32G 해당 사항 없음
n2-highcpu-8-gdc 8 8G 해당 사항 없음
n2-standard-8-gdc 8 32G 해당 사항 없음
n2-highmem-8-gdc 8 64G 해당 사항 없음
a2-highgpu-1g-gdc 12 85G 1
a2-ultragpu-1g-gdc 12 170G 1