Configure a rede e o acesso à sua Cloud TPU
Esta página descreve como configurar a rede personalizada e as configurações de acesso para a sua Cloud TPU, incluindo:
- Especificar uma rede e uma sub-rede personalizadas
- Especificar endereços IP externos e internos
- Ativar o acesso SSH às TPUs
- Associar uma conta de serviço personalizada à TPU
- Ativar métodos SSH personalizados
- Usar os VPC Service Controls
Pré-requisitos
Antes de executar estes procedimentos, tem de instalar a CLI Google Cloud, criar um Google Cloud projeto e ativar a API Cloud TPU. Para ver instruções, consulte o artigo Configure o ambiente do Cloud TPU.
Especifique uma rede e uma sub-rede personalizadas
Opcionalmente, pode especificar a rede e a sub-rede a usar para a TPU. Se a rede não for especificada, a TPU está na rede default
. A sub-rede tem de estar na mesma região que a zona onde 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 o artigo Crie e faça a gestão de 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 o artigo Crie e faça a gestão de redes VPC.
Crie uma VM de TPU, especificando a rede e a sub-rede personalizadas:
gcloud
Para especificar a rede e a sub-rede através da CLI
gcloud
, adicione os flags--network
e--subnetwork
ao seu pedido 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 numa chamada
curl
, adicione os camposnetwork
esubnetwork
ao corpo do pedido:$ 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
Compreenda os endereços IP externos e internos
Quando cria VMs de TPU, estas têm sempre endereços IP internos automaticamente. Se as VMs de TPU forem criadas através da CLI gcloud, os endereços IP externos são gerados por predefinição. Se forem criados através das APIs REST do Cloud TPU (tpu.googleapis.com), não é atribuído nenhum endereço IP externo por predefinição. Pode alterar o comportamento predefinido em ambos os casos.
Endereços IP externos
Quando cria uma TPU usando
gcloud
, são criados endereços IP externos por predefinição para cada VM da TPU.
Se quiser criar uma VM de TPU sem um IP externo, use a flag --internal-ips
apresentada nos exemplos seguintes quando criar a VM de TPU.
gcloud
Se estiver a 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
Se estiver a 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 do pedido:
$ 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 quando usar a API REST (tpu.googleapis.com
),
defina o campo networkconfig.enable_external_ips
no pedido como true
.
Endereços IP internos
As VMs de TPU têm sempre endereços IP internos. Os utilizadores de TPUs na nuvem podem querer restringir as respetivas VMs de TPU apenas a endereços IP internos por alguns motivos importantes:
Segurança melhorada: 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 de TPU. Isto é especialmente importante quando trabalha com dados sensíveis ou quando quer restringir o acesso às suas TPUs a utilizadores ou sistemas específicos na sua rede.
Poupança de custos: ao usar endereços IP internos, pode evitar os custos associados a endereços IP externos, que podem ser significativos para um grande número de VMs de TPU.
Melhor desempenho da rede: os IPs internos podem levar a um melhor desempenho da rede porque o tráfego permanece na rede da Google, evitando a sobrecarga do encaminhamento através da Internet pública. Isto é particularmente relevante para cargas de trabalho de aprendizagem automática em grande escala que precisam de comunicação de largura de banda elevada entre VMs de TPUs.
Ative métodos SSH personalizados
Para estabelecer ligação a TPUs através de SSH, tem de ativar os endereços IP externos para as TPUs ou ativar o acesso privado à Google para a sub-rede à qual as VMs de TPU estão ligadas.
Ative o acesso privado à Google
As TPUs que não têm endereços IP externos podem usar o acesso privado à Google para aceder a APIs e serviços Google. Para mais informações sobre como ativar o acesso privado à Google, consulte o artigo Configure o acesso privado à Google.
Depois de configurar o acesso privado à Google, estabeleça ligação à VM através do SSH.
Anexe uma conta de serviço personalizada
Cada VM de TPU tem uma conta de serviço associada que usa para fazer pedidos de API em seu nome. As VMs de TPU usam esta conta de serviço para chamar as APIs Cloud TPU e aceder ao Cloud Storage e a outros serviços. Por predefinição, a VM de TPU usa a conta de serviço predefinida do Compute Engine.
A conta de serviço tem de ser definida no mesmo Google Cloud projeto onde cria a VM da TPU. As contas de serviço personalizadas usadas para VMs de TPU têm de ter a função TPU Viewer para chamar a API Cloud TPU. Se o código executado na VM de TPU chamar outros Google Cloud serviços, tem de ter as funções necessárias para aceder a esses serviços.
Para mais informações sobre contas de serviço, consulte o artigo Contas de serviço.
Use os seguintes comandos 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 do pedido:
$ 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
Ative métodos SSH personalizados
A rede predefinida permite o acesso SSH a todas as VMs de TPU. Se usar uma rede diferente da predefinida ou alterar as definições de rede predefinidas, tem de ativar explicitamente o acesso SSH adicionando uma regra de firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Faça a integração com os VPC Service Controls
Os VPC Service Controls dos Cloud TPU permitem-lhe definir perímetros de segurança em torno dos seus recursos de Cloud TPU e controlar o movimento de dados através do limite do perímetro. Para saber mais acerca dos VPC Service Controls, consulte o artigo Vista geral dos VPC Service Controls. Para saber mais sobre as limitações da utilização do Cloud TPU com os VPC Service Controls, consulte os produtos suportados e as limitações.