Configurar a rede e o acesso ao Cloud TPU
Nesta página, descrevemos como definir configurações personalizadas de rede e acesso para o Cloud TPU, incluindo:
- Como especificar uma rede e uma sub-rede personalizadas.
- Como especificar endereços IP externos e internos.
- Como ativar o acesso SSH às TPUs.
- Como anexar uma conta de serviço personalizada à TPU.
- Como ativar métodos SSH personalizados.
- Como usar o VPC Service Controls.
Pré-requisitos
Antes de executar esses procedimentos, instale a CLI do Google Cloud, crie um projeto do Google Cloud e ative a API Cloud TPU. Para instruções, consulte Configurar o ambiente do Cloud TPU.
Especificar uma rede e uma sub-rede personalizadas
Você pode especificar a rede e a sub-rede a serem usadas para a TPU. Se a
rede não for especificada, a TPU usar a rede default. A sub-rede
precisa estar na mesma região que a zona em que a TPU é executada.
Crie uma rede que corresponda a um dos seguintes formatos válidos:
compute/{version}/projects/{proj-id}/global/networks/{network}compute/{version}/projects/{proj-##}/global/networks/{network}projects/{proj-id}/global/networks/{network}projects/{proj-##}/global/networks/{network}global/networks/{network}{network}
Para mais informações, consulte Criar e gerenciar redes VPC.
Crie uma sub-rede que corresponda a um dos seguintes formatos válidos:
compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}compute/{version}/projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}projects/{proj-##}/regions/{region}/subnetworks/{subnetwork}regions/{region}/subnetworks/{subnetwork}{subnetwork}
Para mais informações, consulte Criar e gerenciar redes VPC.
Crie uma VM de TPU, especificando a rede e a sub-rede personalizadas:
gcloud
Para especificar a rede e a sub-rede usando a
gcloudCLI, adicione as flags--networke--subnetworkà solicitação de criação:$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=v4-8 \ --version=TPU_SOFTWARE_VERSION \ --network=NETWORK \ --subnetwork=SUBNETWORK
curl
Para especificar a rede e a sub-rede em uma chamada
curl, adicione os camposnetworkesubnetworkao corpo da solicitação:$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \ runtime_version:'tpu-vm-tf-2.17.1-pjrt', \ network_config: {network: 'NETWORK', subnetwork: 'SUBNETWORK', enable_external_ips: true}, \ shielded_instance_config: { enable_secure_boot: true }}" \ https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME
Entender os endereços IP externos e internos
Quando você cria VMs de TPU, elas são sempre fornecidas automaticamente com endereços IP internos. Se você usar a gcloud CLI para criar as VMs de TPU, os endereços IP externos serão gerados por padrão. Se você usar as APIs REST do Cloud TPU (tpu.googleapis.com) para criá-las, nenhum endereço IP externo será atribuído por padrão. É possível mudar o comportamento padrão nos dois casos.
Endereços IP externos
Quando você cria uma TPU usando
gcloud, endereços IP externos são criados por padrão para cada VM de TPU.
Para criar uma VM de TPU sem IP externo, use a
flag --internal-ips mostrada nos exemplos a seguir durante a criação.
gcloud
Ao usar recursos em fila:
gcloud compute tpus queued-resources create your-queued-resource-id \ --node-id your-node-id \ --project your-project \ --zone us-central2-b \ --accelerator-type v4-8 \ --runtime-version tpu_software_version \ --internal-ips
Ao usar a API Create Node:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=v4-8 \ --version=tpu_software_version \ --internal-ips
curl
Defina o campo enable_external_ips como false no corpo da solicitação:
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \ runtime_version:'tpu-vm-tf-2.17.1-pjrt', \ network_config: {enable_external_ips: false}, \ shielded_instance_config: { enable_secure_boot: true }}" \ https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME
Para criar uma VM de TPU com um endereço IP externo usando a API REST (tpu.googleapis.com),
defina o campo networkconfig.enable_external_ips
na solicitação como true.
Endereços IP internos
As VMs de TPU sempre têm endereços IP internos. Os usuários do Cloud TPU podem querer restringir as VMs de TPU apenas a endereços IP internos por alguns motivos:
Segurança aprimorada: os IPs internos só podem ser acessados por recursos na mesma rede VPC, o que pode melhorar a segurança ao limitar o acesso externo às VMs de TPU. Isso é especialmente importante ao trabalhar com dados sensíveis ou quando você quer restringir o acesso às TPUs a usuários ou sistemas específicos na rede.
Economia de custos: ao usar endereços IP internos, você evita os custos associados a endereços IP externos, que podem ser significativos para um grande número de VMs de TPU.
Melhor desempenho de rede: os IPs internos podem melhorar o desempenho da rede porque o tráfego permanece na rede do Google, o que evita o overhead do roteamento pela Internet pública. Isso é particularmente relevante para cargas de trabalho de machine learning em grande escala que precisam de comunicação de alta largura de banda entre VMs de TPU.
Ativar métodos de SSH personalizados
Para se conectar às TPUs usando SSH, ative os endereços IP externos para elas ou o Acesso privado do Google para a sub-rede a que as VMs de TPU estão conectadas.
Ativar o Acesso privado do Google
As TPUs sem endereços IP externos podem usar o Acesso privado do Google para acessar APIs e serviços do Google. Para saber como ativar o Acesso privado do Google, consulte Configurar o Acesso privado do Google.
Depois de configurar o Acesso privado do Google, conecte-se à VM usando SSH.
Anexar uma conta de serviço personalizada
Cada VM de TPU tem uma conta de serviço associada que é usada para fazer solicitações de API em seu nome. As VMs de TPU usam essa conta de serviço para chamar as APIs do Cloud TPU e acessar o Cloud Storage e outros serviços. Por padrão, a VM de TPU usa a conta de serviço padrão do Compute Engine.
A conta de serviço precisa ser definida no mesmo projeto do Google Cloud em que você criou a VM de TPU. As contas de serviço personalizadas usadas para as VMs de TPU precisam ter o papel de Leitor de TPU para chamar a API Cloud TPU. Se o código em execução na VM de TPU chamar outros serviços do Google Cloud , ele vai precisar ter os papéis necessários para acessar esses serviços.
Para mais informações sobre contas de serviço, consulte Contas de serviço.
Use os comandos a seguir para especificar uma conta de serviço personalizada.
gcloud
Use a flag --service-account ao criar uma TPU:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=TPU_TYPE \ --version=tpu-vm-tf-2.17.1-pjrt \ --service-account=SERVICE_ACCOUNT
curl
Defina o campo service_account no corpo da solicitação:
$ curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -d "{accelerator_type: 'v4-8', \ runtime_version:'tpu-vm-tf-2.17.1-pjrt', \ network_config: {enable_external_ips: true}, \ shielded_instance_config: { enable_secure_boot: true }}" \ service_account: {email: 'SERVICE_ACCOUNT'} \ https://tpu.googleapis.com/v2/projects/PROJECT_ID/locations/us-central2-b/nodes?node_id=TPU_NAME
Ativar métodos de SSH personalizados
A rede padrão permite o acesso SSH a todas as VMs de TPU. Se você usar uma rede diferente da padrão ou mudar as configurações da rede padrão, vai precisar ativar explicitamente o acesso SSH adicionando uma regra de firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Integração com o VPC Service Controls
O VPC Service Controls do Cloud TPU permite definir perímetros de segurança para os recursos do Cloud TPU e controlar a movimentação de dados no limite desses perímetros. Para saber mais sobre o VPC Service Controls, consulte a visão geral sobre ele. Para saber mais sobre as limitações de uso do Cloud TPU com o VPC Service Controls, consulte produtos disponíveis e limitações.