Neste documento, mostramos como criar um cluster do Google Kubernetes Engine (GKE) otimizado para IA que usa instâncias do Compute Engine A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs) para dar suporte às suas cargas de trabalho de IA e ML.
As séries de máquinas A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs) foram projetadas para permitir que você execute clusters de IA/ML em grande escala com recursos como posicionamento de carga de trabalho direcionado, controles avançados de manutenção de cluster e programação com reconhecimento de topologia. Para mais informações, consulte Visão geral do gerenciamento de clusters.
O GKE fornece uma única plataforma para executar um conjunto diversificado de cargas de trabalho para as necessidades da sua organização. Essas cargas de trabalho incluem pré-treinamento distribuído de alto desempenho, ajuste de modelos, inferência de modelos, exibição de aplicativos e serviços de suporte. O GKE reduz a carga operacional de gerenciar várias plataformas.
Escolher como criar um cluster do GKE otimizado para IA
As opções a seguir para a criação de clusters oferecem diferentes graus de facilidade e flexibilidade na configuração de clusters e na programação de cargas de trabalho:
- Use o Cluster Toolkit para criar clusters com a configuração padrão para recursos de computação, armazenamento e rede, e com o GPUDirect RDMA-over-Converged-Ethernet (RoCE) ativado.
Como alternativa, é possível criar o cluster do GKE manualmente para personalizar ou expandir com precisão os ambientes de produção do GKE. Para criar manualmente um cluster do GKE otimizado para IA, consulte uma das seguintes páginas:
- A4X Max: crie um cluster do GKE otimizado para IA que use o A4X Max.
- A4X: crie um cluster do GKE otimizado para IA que use o A4X.
- A4 ou A3 Ultra: crie um cluster do GKE otimizado para IA que use A4 ou A3 Ultra.
- A3 Mega ou A3 High: crie um cluster do GKE Standard que use A3 Mega ou A3 High ou crie um cluster do GKE Autopilot que use A3 Mega ou A3 High.
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
- Para usar a Google Cloud CLI nesta tarefa,
instale e
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.
- Verifique se você tem as permissões necessárias para criar e gerenciar o
cluster do GKE e as contas de serviço associadas:
- Administrador do Kubernetes Engine (
roles/container.admin) - Administrador do Compute (
roles/compute.admin) - Administrador do Storage (
roles/storage.admin) - Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin) - Administrador da conta de serviço (
roles/iam.serviceAccountAdmin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser) - Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer) - Administrador de papel (
roles/iam.roleAdmin) - Gerenciador de versões de secret do Secret Manager (
roles/secretmanager.secretVersionManager) - Para consumir uma reserva de projeto único: Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto - Para consumir uma reserva compartilhada: Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1) no projeto proprietário e em qualquer projeto consumidor em que você queira consumir a reserva
- Administrador do Kubernetes Engine (
Escolher uma opção de consumo e obter capacidade
Para conseguir capacidade, siga estas etapas:
Escolha uma opção de consumo:faça sua escolha com base em como você quer receber e usar os recursos de GPU. Para saber mais, consulte Escolher uma opção de consumo.
Para o GKE, considere as seguintes informações adicionais ao escolher uma opção de consumo:
- As instâncias de computação A4X Max e A4X não podem ser provisionadas usando o início flexível.
- Para mais informações sobre o modo de provisionamento de início flexível (pré-lançamento) e o GKE, consulte Sobre a disponibilidade de GPUs com o início flexível.
- O início flexível usa a colocação compacta de melhor esforço. Para examinar sua topologia, consulte Ver 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.
- Para mais informações sobre como configurar essas opções de consumo nos blueprints do Cluster Toolkit, consulte Opções de consumo do GKE.
Obter capacidade:o processo para obter capacidade é diferente para cada opção de consumo. Para saber mais sobre o processo da opção de consumo escolhida, consulte Visão geral da capacidade.
Requisitos
Os requisitos a seguir se aplicam a um cluster do GKE otimizado para IA:
Para o A4X Max, use uma das seguintes versões:
- Para a versão 1.35 ou mais recente, use o GKE versão 1.35.0-gke.2745000 ou mais recente.
- Para a versão 1.34, use o GKE 1.34.3-gke.1318000 ou mais recente.
Essas versões ajudam a garantir que o A4X Max use o seguinte:
- R580.95.05, a versão mínima do driver de GPU para o A4X Max, que é ativada por padrão.
- Gerenciamento de memória baseado em driver coerente (CDMM, na sigla em inglês), que é ativado por padrão. A NVIDIA recomenda que os clusters do Kubernetes ativem esse modo para resolver o excesso de relatórios de memória. O CDMM permite que a memória da GPU seja gerenciada pelo driver, em vez do sistema operacional (SO). Essa abordagem ajuda a evitar que o SO coloque a memória da GPU on-line e expõe a memória da GPU como um nó de acesso à memória não uniforme (NUMA) para o SO. As GPUs de várias instâncias não são compatíveis quando o CDMM está ativado. Para mais informações sobre o CDMM, consulte Suporte de hardware e software.
- GPUDirect RDMA e MNNVL, que são recomendados para permitir que os pools de nós do A4X Max usem os recursos de rede do A4X Max.
Para a A4X, use uma das seguintes versões:
- Para a versão 1.33 ou mais recente, use a versão 1.33.4-gke.1036000 ou mais recente do GKE.
- Para a versão 1.32, use o GKE 1.32.8-gke.1108000 ou mais recente.
Essas versões ajudam a garantir que a A4X use o seguinte:
- R580, a versão mínima do driver de GPU para A4X, que é ativada por padrão.
- Gerenciamento de memória baseado em driver coerente (CDMM, na sigla em inglês), que é ativado por padrão. A NVIDIA recomenda que os clusters do Kubernetes ativem esse modo para resolver o excesso de relatórios de memória. O CDMM permite que a memória da GPU seja gerenciada pelo driver, em vez do sistema operacional (SO). Essa abordagem ajuda a evitar que o SO coloque a memória da GPU on-line e expõe a memória da GPU como um nó de acesso à memória não uniforme (NUMA) para o SO. As GPUs de várias instâncias não são compatíveis quando o CDMM está ativado. Para mais informações sobre o CDMM, consulte Suporte de hardware e software.
- GPUDirect RDMA e MNNVL, que são recomendados para permitir que os pools de nós A4X usem os recursos de rede do A4X.
Use a versão mínima do driver da GPU, dependendo do tipo de máquina:
- A4X Max: as GPUs GB300 em instâncias bare metal A4X Max exigem, no mínimo, a versão do driver de GPU R580.95.05. Consulte os requisitos de versão mencionados anteriormente.
- A4X: as GPUs GB200 em instâncias A4X exigem, no mínimo, a versão R580 do driver de GPU. Consulte os requisitos de versão mencionados anteriormente.
- A4: as GPUs B200 em instâncias A4 exigem, no mínimo, a versão R570 do driver de GPU. Por padrão, o GKE instala automaticamente essa versão do driver em todos os nós A4 que executam a versão mínima necessária para o A4, 1.32.1-gke.1729000 ou mais recente.
- A3 Ultra: as GPUs H200 em instâncias A3 Ultra exigem, no mínimo,
a versão R550 do driver de GPU, que está disponível no GKE
1.31 como a versão do driver
latest. Para o A3 Ultra, é necessário definirgpu-driver-version=latestcom o GKE 1.31. Para o GKE versão 1.31.5-gke.1169000 ou mais recente, o GKE, por padrão, instala automaticamente as versões do driver de GPU R550 nos nós A3 Ultra. - A3 Mega e A3 High: as GPUs H100 nas instâncias A3 High e A3 Mega
são compatíveis com a versão padrão do driver de GPU em todas as versões
do GKE. Também é possível definir
gpu-driver-version=latestpara acessar drivers de produção mais recentes disponíveis nas versões compatíveis do GKE.
Para pools de nós A3 Ultra, defina o tipo de disco como
hyperdisk-balanced.Para usar o GPUDirect RDMA, use as seguintes versões mínimas, dependendo do tipo de máquina:
- A4X Max: consulte os requisitos de versão mencionados anteriormente.
- A4X: consulte os requisitos de versão mencionados anteriormente.
- A4: use 1.32.2-gke.1475000 ou mais recente.
- A3 Ultra: use 1.31.4-gke.1183000 ou mais recente.
Para usar o GPUDirect-TCPXO (para A3 Mega) e o GPUDirect-TCPX (para A3 High), use as seguintes versões do GKE:
- A3 High: use qualquer versão disponível do GKE anterior à 1.34.
- A3 Mega: use qualquer versão disponível do GKE.
Para usar o GPUDirect RDMA, os nós do GKE precisam usar uma imagem de nó do Container-Optimized OS. As imagens de nós do Ubuntu e do Windows não são compatíveis.
Use o modelo de provisionamento vinculado à reserva para criar clusters com o A4X Max e o A4X. Outros modelos de provisionamento não são compatíveis.
Criar um cluster com o Cluster Toolkit
Use as instruções a seguir para criar um cluster usando o Cluster Toolkit. Nesta seção, você vai aprender a criar um cluster, garantindo que seu projeto siga as práticas recomendadas e atenda aos requisitos de um cluster do GKE otimizado para IA. Nesta seção, também mostramos como usar o Terraform para provisionar e gerenciar a infraestrutura da implantação.
A4X Max
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, siga as instruções para instalar dependências e preparar um ambiente diferente.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
No blueprint
examples/gke-a4x-max-bm/gke-a4x-max-bm-deployment.yamldo repositório do GitHub, preencha as seguintes configurações nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.PROJECT_ID: o ID do projeto Google Cloud .DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster falhará. O valor padrão égke-a4x-max-bm.REGION: a região de computação do cluster.ZONE: a zona do Compute do pool de nós de máquinas A4X Max. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.STATIC_NODE_COUNT: o número de nós A4X Max no pool de nós do cluster, que precisa ser de 18 nós ou menos. Recomendamos o uso de 18 nós para conseguir a topologia de GPU de1x72em um sub-bloco usando um domínio NVLink.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam.Para o campo
reservation, use uma das seguintes opções, dependendo se você quer segmentar blocos específicos em uma reserva ao provisionar o pool de nós:Para colocar o pool de nós em qualquer lugar da reserva, informe o nome da reserva (
RESERVATION_NAME).Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
RESERVATION_PROJECT_ID: o ID do projeto do Google Cloud que tem a reserva. Sua reserva pode estar em um projeto diferente dePROJECT_ID.NUM_NODE_POOLS: o número de pools de nós a serem ativados no cluster. Se você quiser um cluster com mais de 18 nós, especifique vários pools de nós. O valor padrão é1.
Para modificar as configurações avançadas, edite o arquivo de blueprint
examples/gke-a4x-max-bm/gke-a4x-max-bm.yaml.Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando os tipos de máquina A4X Max:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4x-max-bm/gke-a4x-max-bm-deployment.yaml \ examples/gke-a4x-max-bm/gke-a4x-max-bm.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint.
- O blueprint cria redes VPC, uma rede VPC de GPU RDMA, contas de serviço, um cluster e um pool de nós.
- Para oferecer suporte ao modelo de job
fio-bench-job-templateno blueprint, são criados buckets doGoogle Cloud , armazenamento de rede e recursos de volume persistente.
A4X
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, siga as instruções para instalar dependências e preparar um ambiente diferente.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
No blueprint
examples/gke-a4x/gke-a4x-deployment.yamldo repositório do GitHub, preencha as seguintes configurações nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da sua implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.PROJECT_ID: o ID do projeto Google Cloud .DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster falhará. O valor padrão égke-a4x.REGION: a região de computação do cluster.ZONE: a zona do Compute para o pool de nós de máquinas A4X. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.STATIC_NODE_COUNT: o número de nós A4X no pool de nós do cluster, que precisa ser de 18 nós ou menos. Recomendamos que você use 18 nós para obter a topologia de GPU de1x72em um sub-bloco usando um domínio NVLink.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam.Para o campo
reservation, use uma das seguintes opções, dependendo se você quer segmentar blocos específicos em uma reserva ao provisionar o pool de nós:Para colocar o pool de nós em qualquer lugar da reserva, forneça o nome da reserva (
RESERVATION_NAME).Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
RESERVATION_PROJECT_ID: o ID do projeto do Google Cloud que tem a reserva. Sua reserva pode estar em um projeto diferente dePROJECT_ID.NUM_NODE_POOLS: o número de pools de nós a serem ativados no cluster. Se você quiser um cluster com mais de 18 nós, especifique vários pools de nós. O valor padrão é1.
Para modificar as configurações avançadas, edite o arquivo de blueprint
examples/gke-a4x/gke-a4x.yaml.Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando tipos de máquina A4X:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4x/gke-a4x-deployment.yaml \ examples/gke-a4x/gke-a4x.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint.
- O blueprint cria redes VPC, uma rede VPC de GPU RDMA, contas de serviço, um cluster e um pool de nós.
- Para oferecer suporte ao modelo de job
fio-bench-job-templateno blueprint, são criados buckets doGoogle Cloud , armazenamento de rede e recursos de volume persistente.
A4
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, siga as instruções para instalar dependências e preparar um ambiente diferente.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
Escolha uma opção de consumo para sua implantação do GKE:
Por padrão, o arquivo de implantação é configurado para consumir reservas específicas. Para usar um modelo de consumo alternativo (como VMs spot ou modo de provisionamento de início flexível), atualize o arquivo YAML de implantação. Para mais informações, consulte Opções de consumo do GKE.
No blueprint
examples/gke-a4/gke-a4-deployment.yamldo repositório do GitHub, preencha as seguintes configurações nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.PROJECT_ID: o ID do projeto Google Cloud .DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster falhará. O valor padrão égke-a4.REGION: a região de computação do cluster.ZONE: a zona do Compute para o pool de nós de máquinas A4. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam.- Na seção de reserva específica, defina as seguintes configurações:
No bloco
reservation_affinity, na listaspecific_reservations, especifique o camponameda reserva:- Para colocar o pool de nós em qualquer lugar da reserva, forneça o
nome da reserva (
RESERVATION_NAME). - Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
- Para colocar o pool de nós em qualquer lugar da reserva, forneça o
nome da reserva (
STATIC_NODE_COUNT: o número de nós A4 no cluster.
Para modificar as configurações avançadas, edite o arquivo de blueprint
examples/gke-a4/gke-a4.yaml.Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando tipos de máquina A4:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a4/gke-a4-deployment.yaml \ examples/gke-a4/gke-a4.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint.
- O blueprint cria redes VPC, uma rede VPC de GPU RDMA, contas de serviço, um cluster e um pool de nós.
- Para oferecer suporte ao modelo de job
fio-bench-job-templateno blueprint, são criados buckets doGoogle Cloud , armazenamento de rede e recursos de volume persistente.
A3 Ultra
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, siga as instruções para instalar dependências e preparar um ambiente diferente.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
Escolha uma opção de consumo para sua implantação do GKE:
Por padrão, o arquivo de implantação é configurado para consumir reservas específicas. Para usar um modelo de consumo alternativo (como VMs spot ou modo de provisionamento de início flexível), atualize o arquivo YAML de implantação. Para mais informações, consulte Opções de consumo do GKE.
No blueprint
examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yamldo repositório do GitHub, preencha as seguintes configurações nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.PROJECT_ID: o ID do projeto Google Cloud .DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster falhará. O valor padrão égke-a3-ultragpu.REGION: a região de computação do cluster.ZONE: a zona do Compute para o pool de nós de máquinas A3 Ultra. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam.- Na seção de reserva específica, defina as seguintes configurações:
No bloco
reservation_affinity, na listaspecific_reservations, especifique o camponameda reserva:- Para colocar o pool de nós em qualquer lugar da reserva, forneça o
nome da reserva (
RESERVATION_NAME). - Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
- Para colocar o pool de nós em qualquer lugar da reserva, forneça o
nome da reserva (
STATIC_NODE_COUNT: o número de nós A3 Ultra no cluster.
Para modificar as configurações avançadas, edite o arquivo de blueprint
examples/gke-a3-ultragpu/gke-a3-ultragpu.yaml.Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando tipos de máquina A3 Ultra:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-ultragpu/gke-a3-ultragpu-deployment.yaml \ examples/gke-a3-ultragpu/gke-a3-ultragpu.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint.
- O blueprint cria redes VPC, uma rede VPC de GPU RDMA, contas de serviço, um cluster e um pool de nós.
- Para oferecer suporte ao modelo de job
fio-bench-job-templateno blueprint, são criados buckets doGoogle Cloud , armazenamento de rede e recursos de volume persistente.
A3 Mega
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, prepare um ambiente diferente seguindo as instruções para instalar dependências.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
No blueprint
examples/gke-a3-megagpu/gke-a3-megagpu-deployment.yamldo repositório do GitHub, substitua as seguintes variáveis nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster falhará.PROJECT_ID: o ID do projeto Google Cloud .REGION: a região de computação do cluster.ZONE: a zona do Compute para o pool de nós de máquinas A3 Mega. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam. Para conseguir o endereço IP da máquina host, execute o comandocurl -s https://ifconfig.me.
Escolha uma opção de consumo para sua implantação do GKE:
Por padrão, o arquivo de implantação é configurado para consumir reservas padrão ou adiantadas. Para usar um modelo de consumo alternativo (como capacidade sob demanda, VMs spot ou modo de provisionamento de início flexível), atualize o arquivo YAML de implantação. Para mais informações, consulte Opções de consumo do GKE.
Para configurar uma reserva, defina os seguintes valores na seção de reserva específica:
- No bloco
reservation_affinity, na listaspecific_reservations, especifique o camponameda reserva: - Para colocar o pool de nós em qualquer lugar da reserva, forneça o nome
da reserva (
RESERVATION_NAME). Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
STATIC_NODE_COUNT: o número de nós A3 Mega no cluster.
Para modificar as configurações avançadas, edite o blueprint
examples/gke-a3-megagpu/gke-a3-megagpu.yamldo repositório do GitHub.- No bloco
Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando tipos de máquina A3 Mega:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-megagpu/gke-a3-megagpu-deployment.yaml \ examples/gke-a3-megagpu/gke-a3-megagpu.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint. O blueprint cria redes VPC, contas de serviço, um cluster e um pool de nós.
A3 High
- Inicie o Cloud Shell. Embora seja possível usar um ambiente diferente, recomendamos o uso do Cloud Shell, porque as dependências já estão pré-instaladas para o Cluster Toolkit. Se você não quiser usar o Cloud Shell, prepare um ambiente diferente seguindo as instruções para instalar dependências.
Crie um bucket do Cloud Storage com o controle de versões ativado para armazenar o estado da implantação do Terraform:
gcloud storage buckets create gs://BUCKET_NAME \ --default-storage-class=STANDARD \ --project=PROJECT_ID \ --location=COMPUTE_REGION_TERRAFORM_STATE \ --uniform-bucket-level-access gcloud storage buckets update gs://BUCKET_NAME --versioning
Substitua as seguintes variáveis:
BUCKET_NAME: o nome do novo bucket do Cloud Storage, que precisa atender aos requisitos de nomenclatura de bucket.PROJECT_ID: o ID do projeto Google Cloud .COMPUTE_REGION_TERRAFORM_STATE: a região de computação em que você quer armazenar o estado da implantação do Terraform.
No blueprint
examples/gke-a3-highgpu/gke-a3-highgpu-deployment.yamldo repositório do GitHub, substitua as seguintes variáveis nas seçõesterraform_backend_defaultsevarspara corresponder aos valores específicos da implantação:BUCKET: o nome do bucket do Cloud Storage que você criou na etapa anterior.DEPLOYMENT_NAME: um nome exclusivo para a implantação, que precisa ter entre 6 e 30 caracteres. Se o nome da implantação não for exclusivo em um projeto, a criação do cluster vai falhar.PROJECT_ID: o ID do projeto Google Cloud .REGION: a região de computação do cluster.ZONE: a zona do Compute para o pool de nós de máquinas A3 High. Essa zona precisa corresponder à zona em que as máquinas estão disponíveis na sua reserva.AUTHORIZED_CIDR: o intervalo de endereços IP que você quer que se conecte ao cluster. Esse bloco CIDR precisa incluir o endereço IP da máquina que chama o Terraform. Para mais informações, consulte Como as redes autorizadas funcionam. Para conseguir o endereço IP da máquina host, execute o comandocurl -s https://ifconfig.me.
Escolha uma opção de consumo para sua implantação do GKE:
Por padrão, o arquivo de implantação é configurado para consumir reservas padrão ou adiantadas. Para usar um modelo de consumo alternativo (como capacidade sob demanda, VMs spot ou modo de provisionamento de início flexível), atualize o arquivo YAML de implantação. Para mais informações, consulte Opções de consumo do GKE.
Para configurar uma reserva, defina os seguintes valores na seção de reserva específica:
- No bloco
reservation_affinity, na listaspecific_reservations, especifique o camponameda reserva: - Para colocar o pool de nós em qualquer lugar da reserva, forneça o nome
da reserva (
RESERVATION_NAME). Para segmentar um bloco específico na reserva, use os nomes da reserva e do bloco no seguinte formato:
RESERVATION_NAME/reservationBlocks/BLOCK_NAMESe você não souber quais blocos estão disponíveis na sua reserva, consulte Visualizar a topologia de uma reserva.
STATIC_NODE_COUNT: o número de nós A3 High no cluster.
Para modificar as configurações avançadas, edite o blueprint
examples/gke-a3-highgpu/gke-a3-highgpu.yamldo repositório do GitHub.- No bloco
Gere o Application Default Credentials (ADC) para fornecer acesso ao Terraform. Se você estiver usando o Cloud Shell, use o comando
gcloud auth application-default login:gcloud auth application-default loginUse o comando
gcluster deploypara implantar o blueprint e provisionar a infraestrutura do GKE usando tipos de máquina A3 High:cd ~/cluster-toolkit ./gcluster deploy -d \ examples/gke-a3-highgpu/gke-a3-highgpu-deployment.yaml \ examples/gke-a3-highgpu/gke-a3-highgpu.yamlQuando solicitado, selecione (A)plicar para implantar o blueprint. O blueprint cria redes VPC, contas de serviço, um cluster e um pool de nós.
Executar jobs de amostra do Dynamic Workload Scheduler
Se você provisionou o cluster usando o Dynamic Workload Scheduler (provisionamento de início flexível ou provisionamento em fila), valide a programação de cargas de trabalho enviando jobs de amostra do Kubernetes.
Para mais informações sobre os modos de provisionamento do Dynamic Workload Scheduler, consulte Início flexível do Dynamic Workload Scheduler com provisionamento em fila.
Enviar um job de amostra
Selecione a guia que corresponde à sua opção de consumo:
Início flexível
Esta tarefa é opcional e só se aplica se
você provisionou o cluster com o início flexível. As cargas de trabalho configuradas
para o início flexível exigem o
seletor de nós cloud.google.com/gke-flex-start: "true" na especificação
do pod.
Envie o job de amostra de início flexível:
kubectl apply -f examples/dws-sample-workloads/sample-job-flex.yamlMonitore o status do job e dos pods:
kubectl get jobs kubectl describe job JOB_NAME kubectl get pods kubectl describe pod POD_NAMESubstitua:
JOB_NAME: o nome do job.POD_NAME: o nome do pod.
Quando o job for concluído, exclua os recursos dele:
kubectl delete -f examples/dws-sample-workloads/sample-job-flex.yaml
Provisionamento em fila
Esta tarefa é opcional e só se aplica se você tiver provisionado o cluster com o provisionamento em fila. As cargas de trabalho configuradas para provisionamento em fila exigem o seguinte rótulo e anotação na especificação do pod:
- Rótulo:
kueue.x-k8s.io/queue-name: dws-local-queue - Anotação:
provreq.kueue.x-k8s.io/maxRunDurationSeconds: "MAX_RUN_DURATION"
Para mais informações, consulte Requisitos de manifesto de carga de trabalho para provisionamento em fila.
Envie o job de provisionamento em fila de amostra:
kubectl apply -f examples/dws-sample-workloads/sample-job-flex-queue.yamlMonitore o status do job e dos pods:
kubectl get jobs kubectl describe job JOB_NAME kubectl get pods kubectl describe pod POD_NAMESubstitua:
JOB_NAME: o nome do job.POD_NAME: o nome do pod.
Quando o job for concluído, exclua os recursos dele:
kubectl delete -f examples/dws-sample-workloads/sample-job-flex-queue.yaml
Teste a performance das redes
Recomendamos que você valide a funcionalidade dos clusters provisionados. Para isso, use os testes da NCCL, que são testes da NVIDIA Collective Communications Library (NCCL) otimizados para o ambiente do Google.
Executar comparativos reproduzíveis
Depois de criar um cluster usando o Cluster Toolkit, é possível reproduzir comparativos de mercado de pré-treinamento para modelos abertos de machine learning grandes na série de máquinas escolhida seguindo as receitas fornecidas no GitHub.
Cada receita fornece as instruções para concluir as seguintes tarefas:
- Prepare o ambiente.
- Execute o comparativo.
- analisar os resultados da comparação. Essa revisão inclui os resultados do comparativo de mercado e registros detalhados para análise posterior.
Para conferir todas as receitas disponíveis para treinamento e outros tipos de cargas de trabalho, consulte o repositório do GitHub de receitas de GPU.
Limpar os recursos criados pelo Cluster Toolkit
Para evitar cobranças recorrentes pelos recursos usados nesta página, use o
comando gcluster destroy
para limpar os recursos provisionados pelo Cluster Toolkit, incluindo as
redes VPC e o cluster do GKE:
cd ~/cluster-toolkit
./gcluster destroy CLUSTER_NAME/
Substitua CLUSTER_NAME pelo nome do cluster.
Para os clusters criados com o Cluster Toolkit, o nome do cluster é
baseado no nome de DEPLOYMENT_NAME.
A seguir
- Para saber como programar cargas de trabalho nos clusters do GKE usando o Topology-Aware Scheduling (TAS) e o Kueue, consulte Programar cargas de trabalho do GKE com o Topology-Aware Scheduling.
- Para saber como gerenciar eventos comuns relevantes para clusters do GKE e cargas de trabalho de IA, consulte Gerenciar clusters do GKE otimizados para IA.
- Para saber como testar seu ambiente para configuração e otimização adequadas, consulte Visão geral da otimização de rede de cluster.
- Para conhecer todos os modelos de consumo compatíveis com clusters do GKE, consulte Opções de consumo do GKE.