이 문서에서는 연결된 NVIDIA T4 또는 V100 GPU가 있는 N1 범용 머신 시리즈를 사용하여 인공지능 (AI) 및 머신러닝 (ML) 워크로드를 지원하는 커스텀 Google Kubernetes Engine (GKE) 클러스터를 만드는 방법을 설명합니다. 연결된 GPU가 있는 N1 머신은 일반 GPU로 간주되며, 이는 중소 규모 추론 및 그래픽 집약적 애플리케이션과 같은 주류 AI 작업을 위해 설계된 독립적인 컴퓨팅 리소스를 제공합니다.
GKE는 조직의 다양한 워크로드를 실행할 수 있는 단일 플랫폼 표면을 제공하여 여러 플랫폼을 관리하는 운영 부담을 줄입니다.
N1 머신 시리즈를 사용하는 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 리소스를 가져오고 사용하는 방법에 따라 선택합니다. 자세한 내용은 소비 옵션 선택을 참조하세요.
용량을 확보 합니다. 소비 옵션의 용량을 확보하는 방법을 알아봅니다.
요구사항
N1을 사용하는 AI 최적화 GKE 클러스터의 경우 노드에서 NVIDIA 드라이버 버전 535 이상을 사용해야 합니다.
제한사항
다음 제한사항은 N1을 일반 GPU 머신 시리즈로 사용할 때 적용됩니다.
- 멀티 인스턴스 GPU (NVIDIA): N1 머신 시리즈는 멀티 인스턴스 GPU (NVIDIA)를 지원하지 않습니다.
- NCCL Fast Socket: GKE의 N1 머신에서 NCCL Fast Socket을 사용할 수 없습니다. N1 머신은 다중 노드 통신을 지원하지만 표준 VPC 네트워킹을 사용합니다. 최대 네트워크 처리량이 필요한 대규모 분산 학습의 경우 클러스터형 GPU 머신 시리즈(예: GPUDirect TCPX를 사용하는 A3 High 또는 A3 Mega 또는 GPUDirect RDMA를 사용하는 A3 Ultra 및 A4)를 사용하는 것이 좋습니다.
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: 클러스터의 리전입니다.
노드 풀을 만듭니다. 클러스터를 만든 후 연결된 T4 또는 V100 GPU가 있는 N1 머신으로 노드 풀을 추가할 수 있습니다.
노드 풀을 만들려면 다음 명령어를 사용합니다.
연결된 T4 GPU가 있는 N1
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-tesla-t4,count=AMOUNT,gpu-driver-version=LATEST \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNT연결된 V100 GPU가 있는 N1
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --region=REGION \ --node-locations=ZONE \ --machine-type=MACHINE_TYPE \ --accelerator=type=nvidia-tesla-v100,count=AMOUNT,gpu-driver-version=LATEST \ --scopes="https://www.googleapis.com/auth/cloud-platform" \ --local-ssd-count=LOCAL_SSD_COUNT다음을 바꿉니다.
CLUSTER_NAME: 클러스터 이름입니다.REGION: 클러스터의 리전입니다.ZONE: 요청된 GPU를 사용할 수 있는 리전 내의 영역입니다(예:us-central1-a). 간단한 배치를 사용할 때는 이 버전이 필요합니다.NODE_POOL_NAME: 노드 풀의 이름입니다.MACHINE_TYPE: 노드의 N1 머신 유형입니다(예:n1-standard-4).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: 사용할 가속기입니다. T4 GPU에는nvidia-tesla-t4를 사용하고 V100 GPU에는nvidia-tesla-v100을 사용합니다.RESERVATION_NAME: Compute Engine 용량 예약의 이름입니다. 공유 예약 또는 예약의 특정 블록 및 하위 블록을 사용하려면 예약된 영역 경로 리소스 사용의 관련 섹션을 참조하세요.
GPU를 요청하는 컨테이너에 다음 리소스를 추가합니다.
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTAMOUNT를 각 노드에 연결할 GPU 수로 바꿉니다.