Configurar a rede e o acesso ao Cloud TPU
Esta página descreve como configurar redes personalizadas e configurações de acesso para seu Cloud TPU, incluindo:
- Como especificar uma rede e sub-rede personalizadas
- Como especificar endereços IP externos e internos
- Como ativar o acesso SSH a TPUs
- Como anexar uma conta de serviço personalizada à TPU
- Como ativar métodos SSH personalizados
- Como usar VPC Service Controls
Pré-requisitos
Antes de executar esses procedimentos, instale a CLI do Google Cloud, crie um projeto Google Cloud e ative a API Cloud TPU. Para instruções, consulte Configurar o ambiente do Cloud TPU.
Especificar uma rede e sub-rede personalizada
Você pode especificar a rede e a sub-rede a serem usadas para a TPU. Se a
rede não for especificada, o TPU vai estar na rede default
. A sub-rede
precisa estar na mesma região da zona em que o TPU é executado.
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 CLI
gcloud
, adicione as flags--network
e--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 camposnetwork
esubnetwork
ao 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 sempre vêm com endereços IP internos automaticamente. Se as VMs da TPU forem criadas pela CLI gcloud, os endereços IP externos serão gerados por padrão. Se eles forem criados pelas APIs REST do Cloud TPU (tpu.googleapis.com), 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
, os endereços IP externos são criados por padrão para cada VM de TPU.
Se você quiser criar uma VM TPU sem IP externo, use a flag --internal-ips
mostrada nos exemplos a seguir ao criar a VM TPU.
gcloud
Se você estiver usando 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
Se você estiver usando 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 ao usar a API REST
(tpu.googleapis.com
),
defina o campo networkconfig.enable_external_ips
na solicitação como true
.
Endereços IP internos
As VMs do TPU sempre têm endereços IP internos. Os usuários da Cloud TPU podem querer restringir as VMs da TPU apenas a endereços IP internos por alguns motivos importantes:
Segurança aprimorada: os IPs internos só são acessíveis a recursos na mesma rede VPC, o que pode melhorar a segurança ao limitar o acesso externo às VMs do 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 sua rede.
Economia de custos: ao usar endereços IP internos, é possível evitar os custos associados a endereços IP externos, que podem ser significativos para um grande número de VMs da TPU.
Melhor desempenho da rede: os IPs internos podem melhorar o desempenho da rede porque o tráfego permanece na rede do Google, evitando 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 SSH personalizados
Para se conectar a TPUs usando SSH, ative endereços IP externos para as TPUs ou ative o Acesso privado do Google na sub-rede a que as VMs da TPU estão conectadas.
ativar o Acesso privado do Google
Os TPUs que não têm endereços IP externos podem usar o Acesso privado do Google para acessar APIs e serviços do Google. Para mais informações sobre como ativar o Acesso particular do Google, consulte Configurar o Acesso particular do Google.
Depois de configurar o acesso privado do Google, conecte-se à VM usando o SSH.
Anexar uma conta de serviço personalizada
Cada VM do TPU tem uma conta de serviço associada que é usada para fazer solicitações de API em seu nome. As VMs do 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 TPU usa a conta de serviço padrão do Compute Engine.
A conta de serviço precisa ser definida no mesmo Google Cloud projeto em que você cria a VM da TPU. As contas de serviço personalizadas usadas para VMs TPU precisam ter o papel de Visualizador de TPU para chamar a API Cloud TPU. Se o código executado na VM da TPU chamar outros serviços Google Cloud , ele precisa ter as funções necessárias 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 SSH personalizados
A rede padrão permite o acesso SSH a todas as VMs da TPU. Se você usar uma rede diferente da padrão ou mudar as configurações de rede padrão, será necessário ativar explicitamente o acesso SSH adicionando uma regra de firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Integrar com o VPC Service Controls
O VPC Service Controls do Cloud TPU permite definir perímetros de segurança em torno dos recursos do Cloud TPU e controlar a movimentação de dados no limite do perímetro. Para saber mais sobre o VPC Service Controls, consulte a visão geral sobre ele. Para saber mais sobre as limitações de uso da Cloud TPU com os VPC Service Controls, consulte os produtos e limitações com suporte.