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

이 문서에서는 A2 Standard (A100 40GB) 또는 A2 Ultra (A100 80GB) 가속기 최적화 머신 유형을 사용하여 인공지능 (AI) 및 머신러닝 (ML) 워크로드를 지원하는 커스텀 Google Kubernetes Engine (GKE) 클러스터를 만드는 방법을 설명합니다. A2는 일반 GPU 머신 시리즈로, 소규모 모델 학습 및 단일 호스트 추론과 같은 주류 AI 작업을 위해 설계된 독립적인 컴퓨팅 리소스를 제공합니다.

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

A2 머신 시리즈를 사용하는 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. 용량 확보. 소비 옵션의 용량을 확보하는 방법을 알아봅니다.

요구사항

A2 머신을 사용하는 AI 최적화 GKE 클러스터의 경우 GPU 노드에서 NVIDIA 드라이버 버전 450.80.02 이상을 사용해야 합니다.

제한사항

다음 제한사항은 A2 머신에 일반 GPU로 적용됩니다.

  • 멀티 인스턴스 GPU: A2 (A100 GPU)는 하드웨어 파티셔닝을 지원하지만 GKE Autopilot을 사용할 때는 멀티 인스턴스 GPU (NVIDIA)가 지원되지 않습니다. A100 GPU 파티셔닝이 필요한 워크로드의 경우 GKE Standard를 사용해야 합니다.

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. 노드 풀을 만듭니다. 클러스터를 만든 후 A2 GPU가 있는 노드 풀을 추가할 수 있습니다.

    다음에 유의하세요.

    • A2 Standard 머신 유형 (a2-highgpu)을 사용하려면 스크래치 공간 또는 캐싱에 사용할 노드에 로컬 SSD 디스크를 수동으로 연결해야 합니다. --local-ssd-count 플래그를 사용합니다.
    • A2 Ultra 머신 유형 (a2-ultragpu)에는 기본적으로 고정된 수의 로컬 SSD 디스크가 자동으로 포함됩니다.
    • 다중 노드 학습 워크로드의 경우 노드 간의 네트워킹 지연 시간을 최소화하기 위해 압축 배치 정책을 사용하는 것이 좋습니다.
    • 다중 노드 학습 워크로드의 경우 네트워크 성능을 개선하기 위해 NCCL Fast Socket을 사용 설정하는 것이 좋습니다.

    A2 Standard (A100 40GB)

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

    A2 Ultra (A100 80GB)

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

    다음을 바꿉니다.

    • CLUSTER_NAME: 클러스터 이름입니다.
    • REGION: 클러스터의 리전입니다.
    • ZONE: 요청된 GPU가 사용 가능한 리전 내의 영역입니다(예: us-central1-a). 압축 배치를 사용할 때는 이 이름이 필요합니다.
    • NODE_POOL_NAME: 노드 풀의 이름입니다.
    • MACHINE_TYPE: 노드의 머신 유형입니다(예: a2-highgpu-1g).
    • 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-tesla-a100 (A2 Standard용) 또는 nvidia-a100-80gb (A2 Ultra용)를 사용해야 합니다.
    • RESERVATION_NAME: Compute Engine 용량 예약의 이름입니다. 공유 예약 또는 예약의 특정 블록 및 하위 블록을 사용하려면 예약된 영역별 경로 리소스 사용의 관련 섹션을 참조하세요.
  2. GPU를 요청하는 컨테이너에 다음 리소스를 추가합니다.

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

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

다음 단계