Este documento descreve como criar clusters personalizados do Google Kubernetes Engine (GKE) que usam a série de máquinas otimizadas por acelerador G2 (NVIDIA L4) ou G4 (NVIDIA RTX PRO 6000) para oferecer suporte às cargas de trabalho de inteligência artificial (IA) e aprendizado de máquina (ML). G2 e G4 são séries de máquinas de GPU gerais, que fornecem recursos de computação independentes projetados para tarefas de IA convencionais como inferência de pequena a média escala e aplicativos com uso intensivo de gráficos.
O GKE oferece uma única plataforma para executar um conjunto diversificado de cargas de trabalho para sua organização, reduzindo o trabalho operacional de gerenciamento de várias plataformas.
Para criar um cluster do GKE otimizado para IA com G2 ou G4, faça o seguinte:
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Funções exigidas
Para receber as permissões necessárias para criar e gerenciar um cluster do GKE, peça ao administrador para conceder a você as seguintes funções do IAM no projeto:
- Administrador do Kubernetes Engine (
roles/container.admin) - Administrador de computação (
roles/compute.admin)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Escolha uma opção de consumo e receba capacidade
Escolha uma opção de consumo. Faça sua escolha com base em como você quer receber e usar recursos de GPU. Para mais informações, consulte Escolher uma opção de consumo opção.
Para o GKE, considere as seguintes informações adicionais ao escolher uma opção de consumo:
- Para mais informações sobre o início flexível (visualização) e o GKE, consulte Sobre a disponibilidade de GPU com início flexível.
- O início flexível usa o posicionamento compacto de melhor esforço. Para examinar sua topologia, consulte Visualizar a topologia física dos nós no cluster do GKE.
- Só é possível receber informações de topologia ao usar VMs spot se você configurar o posicionamento compacto.
Obtenha capacidade. Saiba como receber capacidade para sua opção de consumo.
Requisitos
Para criar um cluster do GKE otimizado para IA que usa G2 ou G4, verifique se você atende aos seguintes requisitos:
- Versão do GKE:as máquinas G4 (RTX PRO 6000) exigem a versão 1.32.4-gke.1698000 ou mais recente do GKE.
- Drivers de GPU:os nós da GPU precisam usar o driver da NVIDIA versão 535 ou mais recente.
Limitações
As seguintes limitações se aplicam a G2 e G4 como séries de máquinas de GPU gerais:
- SSDs locais:os tipos de máquina G2 e G4 não incluem discos SSD locais por padrão. É necessário anexá-los manualmente, se necessário.
- Fast Socket NCCL:não é possível usar o Fast Socket NCCL com máquinas G2 ou G4 no GKE. Embora as máquinas G2 e G4 ofereçam suporte à comunicação de vários nós, elas usam a rede VPC padrão. Para treinamento distribuído em grande escala que exige capacidade máxima de rede, recomendamos o uso da série de máquinas de GPU em cluster , como A3 High ou A3 Mega (que usam GPUDirect TCPX) ou A3 Ultra e A4 (que usam GPUDirect RDMA).
Crie o ambiente do GKE
É possível criar um cluster no modo Autopilot ou Standard.
Autopilot
Para criar um cluster do Autopilot, execute o comando a seguir:
gcloud container clusters create-auto CLUSTER_NAME \
--region=REGION
Substitua:
CLUSTER_NAME: o nome do cluster.REGION: a região do cluster.
Padrão
Crie um cluster padrão e um pool de nós de GPU:
Para criar um cluster padrão, execute o comando a seguir:
gcloud container clusters create CLUSTER_NAME \ --region=REGION \ --enable-ip-aliasSubstitua:
CLUSTER_NAME: o nome do cluster.REGION: a região do cluster.
Crie o pool de nós. Depois de criar o cluster, é possível adicionar um pool de nós com G2 ou G4. Para cargas de trabalho de vários nós que usam G2 (L4) ou G4 (RTX PRO 6000), recomendamos o uso de uma política de posicionamento compacto para minimizar a latência de rede entre os nós.
Para criar um pool de nós, use o comando a seguir:
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_COUNTEstação de trabalho virtual G4 (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_COUNTSubstitua:
NODE_POOL_NAME: o nome do pool de nós.CLUSTER_NAME: o nome do cluster.REGION: a região do cluster.ZONE: uma ou mais zonas na região que têm as GPUs solicitadas disponíveis, por exemplo,us-central1-a. Isso é necessário ao usar o posicionamento compacto.MACHINE_TYPE: o tipo de máquina dos nós, por exemplo,g2-standard-4para máquinas G2 eg4-standard-48para máquinas G4.AMOUNT: o número de GPUs a serem anexadas a cada nó.LOCAL_SSD_COUNT: o número dos volumes SSD locais a serem provisionados em cada nó.
Conectar-se ao seu cluster
Conecte-se ao cluster para executar os comandos kubectl nas próximas seções:
gcloud container clusters get-credentials CLUSTER_NAME \
--region=REGION
Substitua:
CLUSTER_NAME: o nome do cluster.REGION: a região do cluster.
Para mais informações, consulte Instalar o kubectl e configurar o acesso ao cluster.
Configurar os manifestos de pod (somente no Autopilot)
Se você criou um cluster do Autopilot, selecione as GPUs apropriadas nos manifestos de pod para que o GKE provisione o hardware.
Especifique o tipo de GPU escolhido e a reserva específica usando seletores de nós:
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"Substitua:
ACCELERATOR: o acelerador que você reservou. É necessário usarnvidia-l4(para G2),nvidia-rtx-pro-6000(para G4) ounvidia-rtx-pro-6000-vws(para G4 com estação de trabalho virtual).RESERVATION_NAME: o nome da reserva de capacidade do Compute Engine. Para consumir reservas compartilhadas ou blocos e sub-blocos específicos de reservas, consulte as respectivas seções em Como consumir recursos de caminho zonal reservados.
Adicione os seguintes recursos ao contêiner que solicita GPUs:
containers: - name: my-container resources: limits: nvidia.com/gpu: AMOUNTSubstitua
AMOUNTpelo número de GPUs a serem anexadas a cada nó.