G2 또는 G4를 사용하는 맞춤 AI 최적화 GKE 클러스터 만들기

이 문서에서는 G2 (NVIDIA L4) 또는 G4 (NVIDIA RTX PRO 6000) 가속기 최적화 머신 시리즈를 사용하여 인공지능 (AI) 및 머신러닝 (ML) 워크로드를 지원하는 커스텀 Google Kubernetes Engine (GKE) 클러스터를 만드는 방법을 설명합니다. G2 및 G4는 중소 규모 추론 및 그래픽 집약적 애플리케이션과 같은 주류 AI 작업을 위해 설계된 독립적인 컴퓨팅 리소스를 제공하는 일반 GPU 머신 시리즈입니다.

GKE는 조직의 다양한 워크로드를 실행할 수 있는 단일 플랫폼 표면을 제공하여 여러 플랫폼을 관리하는 운영 부담을 줄입니다.

G2 또는 G4를 사용하여 AI에 최적화된 GKE 클러스터를 만들려면 다음 단계를 따르세요.

  1. GKE 환경 만들기
  2. 클러스터에 연결
  3. 포드 매니페스트 구성

시작하기 전에

시작하기 전에 다음 태스크를 수행했는지 확인합니다.

  • Google Kubernetes Engine API를 사용 설정합니다.
  • Google Kubernetes Engine API 사용 설정
  • 이 태스크에 Google Cloud CLI를 사용하려면 설치한 후 초기화합니다. gcloud CLI를 이전에 gcloud CLI를 설치했으면 최신 버전을 gcloud components update 명령어를 실행하여 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.

필요한 역할

GKE 클러스터를 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

소비 옵션 선택 및 용량 확보

  1. 소비 옵션을 선택 합니다. GPU 리소스를 가져오고 사용하는 방법에 따라 선택합니다. 자세한 내용은 소비 옵션 선택을 참조하세요.

    GKE의 경우 소비 옵션을 선택할 때 다음 추가 정보를 고려하세요.

  2. 용량 확보. 소비 옵션의 용량을 확보하는 방법을 알아봅니다.

요구사항

G2 또는 G4를 사용하는 AI에 최적화된 GKE 클러스터를 만들려면 다음 요구사항을 충족해야 합니다.

  • GKE 버전: G4 (RTX PRO 6000) 머신에는 GKE 버전 1.32.4-gke.1698000 이상이 필요합니다.
  • GPU 드라이버: GPU 노드에서 NVIDIA 드라이버 버전 535 이상을 사용해야 합니다.

제한사항

다음 제한사항은 일반 GPU 머신 시리즈인 G2 및 G4에 적용됩니다.

  • 로컬 SSD: G2 및 G4 머신 유형에는 기본적으로 로컬 SSD 디스크가 포함되지 않습니다. 필요한 경우 수동으로 연결해야 합니다.
  • NCCL Fast Socket: GKE에서 G2 또는 G4 머신과 함께 NCCL Fast Socket을 사용할 수 없습니다. G2 및 G4 머신은 다중 노드 통신을 지원하지만 표준 VPC 네트워킹을 사용합니다. 최대 네트워크 처리량이 필요한 대규모 분산 학습의 경우 클러스터형 GPU 머신 시리즈(예: A3 High 또는 A3 Mega(GPUDirect TCPX 사용) 또는 A3 Ultra 및 A4 (GPUDirect RDMA 사용))를 사용하는 것이 좋습니다.

GKE 환경 만들기

Autopilot 또는 일반 모드로 클러스터를 만들 수 있습니다.

Autopilot

Autopilot 클러스터를 만들려면 다음 명령어를 실행하세요.

gcloud container clusters create-auto CLUSTER_NAME \
    --region=REGION

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름입니다.
  • REGION: 클러스터의 리전입니다.

표준

Standard 클러스터 및 GPU 노드 풀을 만듭니다.

  1. Standard 클러스터를 만들려면 다음 명령어를 실행하세요.

    gcloud container clusters create CLUSTER_NAME \
        --region=REGION \
        --enable-ip-alias
    

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터 이름입니다.
    • REGION: 클러스터의 리전입니다.
  2. 노드 풀을 만듭니다. 클러스터를 만든 후 G2 또는 G4를 사용하여 노드 풀을 추가할 수 있습니다. G2 (L4) 또는 G4 (RTX PRO 6000)를 사용하는 다중 노드 워크로드의 경우 압축 배치 정책을 사용하여 노드 간 네트워킹 지연 시간을 최소화하는 것이 좋습니다.

    노드 풀을 만들려면 다음 명령어를 사용하세요.

    G2 (NVIDIA L4)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-l4,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 (NVIDIA RTX PRO 6000)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    G4 가상 워크스테이션 (vWS)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-rtx-pro-6000-vws,count=AMOUNT,gpu-driver-version=LATEST \
        --disk-type=hyperdisk-balanced \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    다음을 바꿉니다.

    • NODE_POOL_NAME: 노드 풀의 이름입니다.
    • CLUSTER_NAME: 클러스터 이름입니다.
    • REGION: 클러스터의 리전입니다.
    • ZONE: 요청된 GPU를 사용할 수 있는 리전 내의 영역(예: us-central1-a)입니다. 간단한 배치를 사용하는 경우에 필요합니다.
    • MACHINE_TYPE: 노드의 머신 유형입니다(예: G2 머신의 경우 g2-standard-4, G4 머신의 경우 g4-standard-48).
    • AMOUNT: 각 노드에 연결할 GPU 수입니다.
    • LOCAL_SSD_COUNT: 각 노드에서 프로비저닝할 로컬 SSD 볼륨 수입니다.

클러스터에 연결

다음 섹션에서 kubectl 명령어를 실행할 수 있도록 클러스터에 연결합니다.

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=REGION

다음을 바꿉니다.

  • CLUSTER_NAME: 클러스터 이름입니다.
  • REGION: 클러스터의 리전입니다.

자세한 내용은 kubectl 설치 및 클러스터 액세스 구성을 참조하세요.

포드 매니페스트 구성 (Autopilot만 해당)

Autopilot 클러스터를 만든 경우 GKE에서 하드웨어를 프로비저닝할 수 있도록 포드 매니페스트에서 적절한 GPU를 선택해야 합니다.

  1. 노드 선택기를 사용하여 선택한 GPU 유형과 특정 예약을 지정합니다.

    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: ACCELERATOR
        cloud.google.com/gke-gpu-driver-version: latest
        # Optional: Include if using reserved capacity
        cloud.google.com/reservation-name: RESERVATION_NAME
        cloud.google.com/reservation-affinity: "specific"
    

    다음을 바꿉니다.

    • ACCELERATOR: 예약한 가속기입니다. nvidia-l4 (G2용), nvidia-rtx-pro-6000 (G4용) 또는 nvidia-rtx-pro-6000-vws (가상 워크스테이션이 있는 G4용)를 사용해야 합니다.
    • RESERVATION_NAME: Compute Engine 용량 예약의 이름입니다. 공유 예약 또는 예약의 특정 블록 및 하위 블록을 사용하려면 예약된 영역별 경로 리소스 사용의 관련 섹션을 참조하세요.
  2. GPU를 요청하는 컨테이너에 다음 리소스를 추가합니다.

    containers:
      - name: my-container
        resources:
          limits:
            nvidia.com/gpu: AMOUNT
    

    AMOUNT를 각 노드에 연결할 GPU 수로 바꿉니다.

다음 단계