Nesta página, descrevemos como implantar cargas de trabalho de contêineres de GPU na SKU otimizada para IA do Sandbox do Google Distributed Cloud (GDC).
Implantar cargas de trabalho de contêineres de GPU
A SKU otimizada para IA do GDC Sandbox inclui quatro GPUs NVIDIA H100 de 80 GB HBM3 no cluster org-infra. Essas GPUs podem ser acessadas usando o nome do recurso
nvidia.com/gpu-pod-NVIDIA_H100_80GB_HBM3
. Nesta seção, descrevemos como atualizar uma configuração de contêiner para usar essas GPUs.
As GPUs na SKU otimizada para IA do GDC Sandbox estão associadas a um projeto pré-configurado, "sandbox-gpu-project". É necessário implantar o contêiner usando esse projeto para usar as GPUs.
Antes de começar
Para executar comandos no cluster de infraestrutura da organização, verifique se você tem o kubeconfig do cluster
org-1-infra
, conforme descrito em Trabalhar com clusters:- Configure e autentique com a linha de comando
gdcloud
e - gere o arquivo kubeconfig para o cluster de infraestrutura da organização e
atribua o caminho dele à variável de ambiente
KUBECONFIG
.
- Configure e autentique com a linha de comando
Para executar as cargas de trabalho, é preciso ter o papel
sandbox-gpu-admin
atribuído. Por padrão, a função é atribuída ao usuárioplatform-admin
. Você pode atribuir a função a outros usuários fazendo login comoplatform-admin
e executando o seguinte comando:kubectl --kubeconfig ${KUBECONFIG} create rolebinding ${NAME} --role=sandbox-gpu-admin \ --user=${USER} --namespace=sandbox-gpu-project
Configurar um contêiner para usar recursos de GPU
Adicione os campos
.containers.resources.requests
e.containers.resources.limits
à especificação do contêiner para solicitar GPUs para a carga de trabalho. Todos os contêineres no sandbox-gpu-project podem solicitar até quatro GPUs no total em todo o projeto. O exemplo a seguir solicita uma GPU como parte da especificação do contêiner.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
Os contêineres também exigem permissões extras para acessar GPUs. Para cada contêiner que solicita GPUs, adicione as seguintes permissões à especificação do contêiner:
securityContext: seLinuxOptions: type: unconfined_t
Aplique o arquivo de manifesto do contêiner:
kubectl apply -f ${CONTAINER_MANIFEST_FILE_PATH} \ -n sandbox-gpu-project \ --kubeconfig ${KUBECONFIG}