Este documento fornece instruções para configurar um cluster do Ray na Gemini Enterprise Agent Platform para atender a várias necessidades. Por exemplo, para criar sua imagem, consulte Imagem personalizada. Algumas empresas podem usar redes particulares. Este documento aborda a interface do Private Service Connect para Ray na Vertex AI. Outro caso de uso envolve o acesso a arquivos remotos como se fossem locais (consulte Ray no sistema de arquivos de rede da Agent Platform).
Visão geral
Os tópicos abordados aqui incluem:
- como criar um cluster do Ray na Gemini Enterprise Agent Platform
- como gerenciar o ciclo de vida de um cluster do Ray
- como criar uma imagem personalizada
- como configurar a conectividade privada e pública (VPC)
- como usar a interface do Private Service Connect para Ray na Agent Platform
- como configurar o sistema de arquivos de rede (NFS) do Ray na Agent Platform
- como configurar um painel do Ray e um shell interativo com VPC-SC + peering de VPC
Criar um cluster do Ray
É possível usar o Google Cloud console ou o SDK da Agent Platform para Python para criar um cluster do Ray. Um cluster pode ter até 2.000 nós. Há um limite superior de 1.000 nós em um pool de workers. Não há limite para o número de pools de workers, mas um grande número de pools de workers, como 1.000 pools de workers com um nó cada, pode afetar negativamente o desempenho do cluster.
Antes de começar, leia a Visão geral do Ray na Gemini Enterprise Agent Platform e configure todas as ferramentas necessárias como pré-requisito.
Um cluster do Ray na Agent Platform pode levar de 10 a 20 minutos para ser iniciado após a criação.
Console
De acordo com as Práticas recomendadas do OSS Ray a configuração da contagem lógica de CPU como 0 no nó principal do Ray é aplicada para para evitar a execução de cargas de trabalho no nó principal.
No Google Cloud console, acesse a página Ray na Agent Platform.
Clique em Criar cluster para abrir o painel Criar cluster.
Para cada etapa no painel Criar cluster, revise ou substitua as informações do cluster padrão. Clique em Continuar para concluir cada etapa:
Em Nome e região, especifique um Nome e escolha um Local para o cluster.
Em Configurações de computação, especifique a configuração do cluster do Ray no nó principal da Gemini Enterprise Agent Platform, incluindo o tipo de máquina, o acelerador tipo e contagem, tipo e tamanho do disco e contagem de réplicas. Opcionalmente, adicione um URI de imagem do contêiner personalizada para especificar uma imagem do contêiner personalizada e adicionar dependências do Python não fornecidas pela imagem do contêiner padrão. Consulte Imagem personalizada.
Em Opções avançadas, é possível fazer o seguinte:
- Especifique sua própria chave de criptografia.
- Especifique uma conta de serviço personalizada.
- Desative a coleta de métricas se você não precisar monitorar as estatísticas de recursos da sua carga de trabalho durante o treinamento.
(Opcional) Para implantar um endpoint particular para o cluster, o método recomendado é usar o Private Service Connect. Para mais detalhes, consulte Interface do Private Service Connect para Ray na Vertex AI.
Clique em Criar.
Ray no SDK da Agent Platform
De acordo com as Práticas recomendadas do OSS Ray a configuração da contagem lógica de CPU como 0 no nó principal do Ray é aplicada para para evitar a execução de cargas de trabalho no nó principal.
Em um ambiente Python interativo, use o comando a seguir para criar o cluster do Ray na Gemini Enterprise Agent Platform:
import ray import vertex_ray from google.cloud import aiplatform from vertex_ray import Resources from vertex_ray.util.resources import NfsMount # Define a default CPU cluster, machine_type is n1-standard-16, 1 head node and 1 worker node head_node_type = Resources() worker_node_types = [Resources()] # Or define a GPU cluster. head_node_type = Resources( machine_type="n1-standard-16", node_count=1, custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest", # Optional. When not specified, a prebuilt image is used. ) worker_node_types = [Resources( machine_type="n1-standard-16", node_count=2, # Must be >= 1 accelerator_type="NVIDIA_TESLA_T4", accelerator_count=1, custom_image="us-docker.pkg.dev/my-project/ray-custom.2-9.py310:latest", # When not specified, a prebuilt image is used. )] # Optional. Create cluster with Network File System (NFS) setup. nfs_mount = NfsMount( server="10.10.10.10", path="nfs_path", mount_point="nfs_mount_point", ) aiplatform.init() # Initialize Agent Platform to retrieve projects for downstream operations. # Create the Ray cluster on Agent Platform CLUSTER_RESOURCE_NAME = vertex_ray.create_ray_cluster( head_node_type=head_node_type, network=NETWORK, #Optional worker_node_types=worker_node_types, python_version="3.10", # Optional ray_version="2.47", # Optional cluster_name=CLUSTER_NAME, # Optional service_account=SERVICE_ACCOUNT, # Optional enable_metrics_collection=True, # Optional. Enable metrics collection for monitoring. labels=LABELS, # Optional. nfs_mounts=[nfs_mount], # Optional. )
Em que:
CLUSTER_NAME: um nome para o cluster do Ray na Gemini Enterprise Agent Platform que precisa ser exclusivo em todo o projeto.
NETWORK: (opcional) o nome completo da rede VPC, no formato
projects/PROJECT_ID/global/networks/VPC_NAME. Para definir um endpoint particular em vez de um público para o cluster, especifique uma rede VPC para usar com o Ray na Agent Platform. Para mais informações, consulte Conectividade privada e pública.VPC_NAME: opcional: a VPC em que a VM opera.
PROJECT_ID: o ID do projeto do Google Cloud . Você encontra o ID do projeto na Google Cloud página de boas-vindas do console.
SERVICE_ACCOUNT: opcional: a conta de serviço para executar aplicativos do Ray no cluster. Conceda os papéis necessários.
LABELS: (opcional) os rótulos com metadados definidos pelo usuário usados para organizar clusters do Ray. As chaves e os valores de rótulo não podem ter mais de 64 caracteres (pontos de código Unicode) e podem conter apenas letras minúsculas, caracteres numéricos, sublinhados e traços. Caracteres internacionais são permitidos. Consulte https://goo.gl/xmQnxf para mais informações e exemplos de rótulos.
Você verá a seguinte saída até que o status mude para RUNNING:
[Ray on Agent Platform]: Cluster State = State.PROVISIONING Waiting for cluster provisioning; attempt 1; sleeping for 0:02:30 seconds ... [Ray on Agent Platform]: Cluster State = State.RUNNING
Observe o seguinte:
O primeiro nó é o nó principal.
Os tipos de máquina da TPU não são compatíveis.
Gerenciamento do ciclo de vida
Durante o ciclo de vida de um cluster do Ray na Gemini Enterprise Agent Platform, cada ação está associada a um estado. A tabela a seguir resume o status de faturamento e a opção de gerenciamento para cada estado. A documentação de referência fornece uma definição para cada um desses estados.
| Ação | Estado | Faturado? | Ação de exclusão disponível? | Ação de cancelamento disponível? |
|---|---|---|---|---|
| O usuário cria um cluster | PROVISIONANDO | Não | Não | Não |
| O usuário aumenta ou diminui a escala manualmente | ATUALIZANDO | Sim, de acordo com o tamanho em tempo real | Sim | Não |
| O cluster é executado | EM EXECUÇÃO | Sim | Sim | Não relevante: é possível excluir |
| O cluster é escalonado automaticamente para cima ou para baixo | ATUALIZANDO | Sim, de acordo com o tamanho em tempo real | Sim | Não |
| O usuário exclui o cluster | INTERROMPENDO | Não | Não | Não relevante: já está interrompendo |
| O cluster entra em um estado de erro | ERRO | Não | Sim | Não relevante: é possível excluir |
| Não relevante | STATE_UNSPECIFIED | Não | Sim | Não relevante |
Imagem personalizada (opcional)
As imagens pré-criadas se alinham com a maioria dos casos de uso. Para criar sua imagem, use as imagens pré-criadas do Ray na Gemini Enterprise Agent Platform como uma imagem de base. Consulte a documentação do Docker para saber como criar imagens a partir de uma imagem base.
Essas imagens de base incluem uma instalação do Python, Ubuntu e Ray. Elas também incluem dependências como:
- python-json-logger
- google-cloud-resource-manager
- ca-certificates-java
- libatlas-base-dev
- liblapack-dev
- g++, libio-all-perl
- libyaml-0-2.
Conectividade privada e pública
Por padrão, o Ray na Agent Platform cria um endpoint público e seguro para desenvolvimento interativo com o Ray Client nos clusters do Ray na Gemini Enterprise Agent Platform. Use a conectividade pública para casos de uso temporários ou de desenvolvimento. Esse endpoint público é acessível pela Internet. Somente usuários autorizados que têm, no mínimo, permissões de função do usuário da Gemini Enterprise Agent Platform no projeto de usuário do cluster do Ray podem acessar o cluster.
Se você precisar de uma conexão particular com o cluster ou usar o VPC Service Controls, o peering de VPC será compatível com clusters do Ray na Gemini Enterprise Agent Platform. Clusters com um endpoint particular só são acessíveis a partir de um cliente dentro de uma rede VPC que faz peering com a Gemini Enterprise Agent Platform.
Para configurar a conectividade particular com o peering de VPC para Ray na Agent Platform, selecione uma rede VPC ao criar o cluster. A rede VPC requer uma conexão de serviços particulares entre sua rede VPC e a Gemini Enterprise Agent Platform. Se você usar o Ray na Agent Platform no console, é possível configurar sua conexão de acesso a serviços particulares ao criar o cluster.
Se você quiser usar o VPC Service Controls e o peering de VPC com clusters do Ray na Agent Platform, será necessário fazer uma configuração extra para usar o painel do Ray e o shell interativo. Siga as instruções em Shell interativo e painel do Ray com VPC-SC + peering de VPC para configurar o shell interativo com VPC-SC e peering de VPC no seu projeto de usuário.
Depois de criar o cluster do Ray na Gemini Enterprise Agent Platform, conecte-se ao nó principal usando o SDK da Agent Platform para Python. O ambiente de conexão, como uma VM do Compute Engine ou uma instância do Vertex AI Workbench, precisa estar na rede VPC que faz peering com a Gemini Enterprise Agent Platform. Observe que uma conexão de serviços privados tem um número limitado de endereços IP, o que pode resultar no esgotamento dos endereços IP. Portanto, recomendamos o uso de conexões particulares para clusters de longa duração.
Interface do Private Service Connect para Ray na Gemini Enterprise Agent Platform
A saída da interface do Private Service Connect e a entrada da interface do Private Service Connect são compatíveis com clusters do Ray na Gemini Enterprise Agent Platform.
Para usar a saída da interface do Private Service Connect, siga as instruções na seção a seguir. Se o VPC Service Controls não estiver ativado, os clusters com saída da interface do Private Service Connect usarão o endpoint público seguro para entrada com o Ray Client.
Se o VPC Service Controls estiver ativado, a entrada da interface do Private Service Connect será usada por padrão com a saída da interface do Private Service Connect. Para se conectar ao Ray Client ou enviar jobs de um notebook para um cluster com entrada da interface do Private Service Connect, verifique se o notebook está na VPC e na sub-rede do projeto do usuário. Para mais detalhes sobre como configurar o VPC Service Controls, consulte VPC Service Controls com a Gemini Enterprise Agent Platform.

Ativar a interface do Private Service Connect
Siga o guia de configuração de recursos para configurar a interface do Private Service Connect. Depois de configurar os recursos, você estará pronto para ativar a interface do Private Service Connect no cluster do Ray na Gemini Enterprise Agent Platform.
Console
Ao criar o cluster e depois de especificar Nome e região e Configurações de computação, a opção Rede aparece.

Configure um anexo de rede seguindo um destes procedimentos:
- Use o nome NETWORK_ATTACHMENT_NAME especificado ao configurar os recursos para o Private Service Connect.
- Crie um anexo de rede clicando no botão Criar anexo de rede que aparece no menu suspenso.

Clique em Criar anexo de rede.
Na subtarefa que aparece, especifique um nome, uma rede e uma sub-rede para o novo anexo de rede.

Clique em Criar.
Ray no SDK da Agent Platform
O Ray no SDK da Agent Platform faz parte do SDK da Agent Platform para Python. Para saber como instalar ou atualizar o SDK da Agent Platform para Python, consulte Instalar o SDK da Agent Platform para Python. Para mais informações, consulte a documentação de referência da API SDK da Agent Platform para Python.
from google.cloud import aiplatform import vertex_ray # Initialization aiplatform.init() # Create a default cluster with network attachment configuration psc_config = vertex_ray.PscIConfig(network_attachment=NETWORK_ATTACHMENT_NAME) cluster_resource_name = vertex_ray.create_ray_cluster( psc_interface_config=psc_config, )
Em que:
- NETWORK_ATTACHMENT_NAME: o nome especificado ao configurar os recursos para o Private Service Connect no projeto do usuário.
Ray no sistema de arquivos de rede (NFS) da Agent Platform
Para disponibilizar arquivos remotos para o cluster, monte compartilhamentos do sistema de arquivos de rede (NFS). Os jobs podem acessar arquivos remotos como se fossem locais, o que permite alta capacidade e baixa latência.
Configuração da VPC
Há duas opções para configurar a VPC:
- Criar um anexo de rede da interface do Private Service Connect. (Recomendado)
- Configurar o peering de redes VPC.
Configurar a instância do NFS
Para mais detalhes sobre como criar uma instância do Filestore, consulte Criar uma instância. Se você usar o método de interface do Private Service Connect, não será necessário selecionar o modo de acesso a serviços particulares ao criar o Filestore.
Usar o sistema de arquivos de rede (NFS)
Para usar o sistema de arquivos de rede, especifique uma rede ou um anexo de rede (recomendado).
Console
Na etapa de rede da página de criação, depois de especificar uma rede ou um anexo de rede. Para fazer isso, clique em Adicionar montagem do NFS na seção Sistema de arquivos de rede (NFS) e especifique uma montagem do NFS (servidor, caminho e ponto de montagem).
Campo Descrição serverO endereço IP do servidor NFS. Precisa ser um endereço privado na sua VPC. pathO caminho de compartilhamento do NFS. Precisa ser um caminho absoluto que comece com /.mountPointO ponto de montagem local. Precisa ser um nome de diretório UNIX válido. Por exemplo, se o ponto de montagem local for sourceData, especifique o caminho/mnt/nfs/ sourceDatada instância de VM de treinamento.Para mais informações, consulte Onde especificar recursos de computação.
Especifique um servidor, um caminho e um ponto de montagem.

Clique em Criar. Isso cria o cluster do Ray.
Shell interativo e painel do Ray com VPC-SC + peering de VPC
-
Configure
peered-dns-domains.{ VPC_NAME=NETWORK_NAME REGION=LOCATION gcloud services peered-dns-domains create training-cloud \ --network=$VPC_NAME \ --dns-suffix=$REGION.aiplatform-training.cloud.google.com. # Verify gcloud beta services peered-dns-domains list --network $VPC_NAME; }
-
NETWORK_NAME: mudar para a rede com peering.
-
LOCATION: o local desejado (por exemplo,
us-central1).
-
-
Configure
DNS managed zone.{ PROJECT_ID=PROJECT_ID ZONE_NAME=$PROJECT_ID-aiplatform-training-cloud-google-com DNS_NAME=aiplatform-training.cloud.google.com DESCRIPTION=aiplatform-training.cloud.google.com gcloud dns managed-zones create $ZONE_NAME \ --visibility=private \ --networks=https://www.googleapis.com/compute/v1/projects/$PROJECT_ID/global/networks/$VPC_NAME \ --dns-name=$DNS_NAME \ --description="Training $DESCRIPTION" }
-
PROJECT_ID: o ID do projeto. Esses IDs estão na Google Cloud página de boas-vindas do console.
-
-
Registro de transação DNS.
{ gcloud dns record-sets transaction start --zone=$ZONE_NAME gcloud dns record-sets transaction add \ --name=$DNS_NAME. \ --type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \ --zone=$ZONE_NAME \ --ttl=300 gcloud dns record-sets transaction add \ --name=*.$DNS_NAME. \ --type=CNAME $DNS_NAME. \ --zone=$ZONE_NAME \ --ttl=300 gcloud dns record-sets transaction execute --zone=$ZONE_NAME }
-
Envie um job de treinamento com o shell interativo + VPC-SC + peering de VPC ativado.
Responsabilidade compartilhada
Proteger suas cargas de trabalho na Vertex AI é uma responsabilidade compartilhada. Embora a Vertex AI atualize regularmente as configurações de infraestrutura para resolver vulnerabilidades de segurança, a Vertex AI não atualiza automaticamente os clusters e recursos persistentes do Ray na Vertex AI para evitar a preempção de cargas de trabalho em execução. Portanto, você é responsável por tarefas como as seguintes:
- Exclua e recrie periodicamente os clusters e recursos persistentes do Ray na Vertex AI para usar as versões mais recentes da infraestrutura. A Vertex AI recomenda recriar os clusters e recursos persistentes pelo menos uma vez a cada 30 dias.
- Configure corretamente todas as imagens personalizadas que você usa.
Para mais informações, consulte Responsabilidade compartilhada.