이 문서에서는 G2 (NVIDIA L4) 또는 G4 (NVIDIA RTX PRO 6000) 가속기 최적화 머신 시리즈를 사용하여 인공지능 (AI) 및 머신러닝 (ML) 워크로드를 지원하는 커스텀 Google Kubernetes Engine (GKE) 클러스터를 만드는 방법을 설명합니다. G2 및 G4는 중소 규모 추론 및 그래픽 집약적 애플리케이션과 같은 주류 AI 작업을 위해 설계된 독립적인 컴퓨팅 리소스를 제공하는 일반 GPU 머신 시리즈입니다.
GKE는 조직의 다양한 워크로드를 실행할 수 있는 단일 플랫폼 표면을 제공하여 여러 플랫폼을 관리하는 운영 부담을 줄입니다.
G2 또는 G4를 사용하여 AI에 최적화된 GKE 클러스터를 만들려면 다음 단계를 따르세요.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면
설치한 후
초기화합니다.
gcloud CLI를 이전에 gcloud CLI를 설치했으면 최신
버전을
gcloud components update명령어를 실행하여 가져옵니다. 이전 gcloud CLI 버전에서는 이 문서의 명령어를 실행하지 못할 수 있습니다.
필요한 역할
GKE 클러스터를 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- Kubernetes Engine 관리자 (
roles/container.admin) - Compute 관리자 (
roles/compute.admin)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
소비 옵션 선택 및 용량 확보
소비 옵션을 선택 합니다. GPU 리소스를 가져오고 사용하는 방법에 따라 선택합니다. 자세한 내용은 소비 옵션 선택을 참조하세요.
GKE의 경우 소비 옵션을 선택할 때 다음 추가 정보를 고려하세요.
- Flex-start (미리보기) 및 GKE에 대한 자세한 내용은 Flex-start 를 통한 GPU 확보 가능성 정보를 참조하세요.
- Flex-start는 최선을 다하는 간단한 배치를 사용합니다. 토폴로지를 검사하려면 GKE 클러스터의 노드 물리적 토폴로지 보기를 참조하세요.
- 간단한 배치를 구성한 경우에만 스팟 VM을 사용할 때 토폴로지 정보를 가져올 수 있습니다.
용량 확보. 소비 옵션의 용량을 확보하는 방법을 알아봅니다.
요구사항
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 노드 풀을 만듭니다.
Standard 클러스터를 만들려면 다음 명령어를 실행하세요.
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-alias다음을 바꿉니다.
CLUSTER_NAME: 클러스터 이름입니다.REGION: 클러스터의 리전입니다.
노드 풀을 만듭니다. 클러스터를 만든 후 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_COUNTG4 (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_COUNTG4 가상 워크스테이션 (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를 선택해야 합니다.
노드 선택기를 사용하여 선택한 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 용량 예약의 이름입니다. 공유 예약 또는 예약의 특정 블록 및 하위 블록을 사용하려면 예약된 영역별 경로 리소스 사용의 관련 섹션을 참조하세요.
GPU를 요청하는 컨테이너에 다음 리소스를 추가합니다.
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTAMOUNT를 각 노드에 연결할 GPU 수로 바꿉니다.