이 페이지에서는 Google Distributed Cloud (GDC) Sandbox AI Optimized SKU에서 GPU 컨테이너 워크로드를 배포하는 방법을 설명합니다.
GPU 컨테이너 워크로드 배포
GDC Sandbox AI Optimized SKU에는 org-infra 클러스터 내에 NVIDIA H100 80GB HBM3 GPU가 4개 포함되어 있습니다. 이러한 GPU는 리소스 이름 nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3을 사용하여 액세스할 수 있습니다. 이 섹션에서는 이러한 GPU를 사용하도록 컨테이너 구성을 업데이트하는 방법을 설명합니다.
GDC Sandbox AI Optimized SKU의 GPU는 사전 구성된
프로젝트 "sandbox-gpu-project"와 연결되어 있습니다. GPU를 사용하려면 org-1-infra 클러스터 내에서 이 프로젝트를 사용하여 컨테이너를 배포해야 합니다.
시작하기 전에
조직 인프라 클러스터에 대해 명령어를 실행하려면 클러스터 작업에 설명된 대로
org-1-infra클러스터의 kubeconfig가 있어야 합니다.gdcloud명령줄로 구성 및 인증하고- 조직 인프라 클러스터의 kubeconfig 파일을 생성하고 경로를 환경 변수
KUBECONFIG에 할당합니다.
워크로드를 실행하려면
sandbox-gpu-admin역할이 할당되어 있어야 합니다. 기본적으로 역할은platform-admin사용자에게 할당됩니다.platform-admin으로 로그인하고 다음 명령어를 실행하여 다른 사용자에게 역할을 할당할 수 있습니다.kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project컨테이너로의 네트워크 트래픽을 허용하려면 프로젝트 네트워크 정책이 있어야 합니다. 자세한 내용은 네트워크 정책 만들기를 참조하세요.
GPU 리소스를 사용하도록 컨테이너 구성
워크로드의 GPU를 요청하려면 컨테이너 사양에
.containers.resources.requests및.containers.resources.limits필드를 추가합니다. sandbox-gpu-project 내의 모든 컨테이너는 전체 프로젝트에서 최대 4개의 GPU를 요청할 수 있습니다. 다음 예에서는 컨테이너 사양의 일부로 GPU 1개를 요청합니다.apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1
컨테이너에는 GPU에 액세스하기 위한 추가 권한도 필요합니다. GPU를 요청하는 각 컨테이너에 대해 컨테이너에
unconfined_t유형의securityContext.seLinuxOptions를 부여하는.containers.securityContext를 추가합니다.apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: sandbox-gpu-project labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest resources: requests: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 limits: nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3: 1 securityContext: seLinuxOptions: type: unconfined_t컨테이너 매니페스트 파일을 적용합니다.
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}