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 internos
  • Como ativar o acesso SSH a TPUs
  • Como anexar uma conta de serviço personalizada à TPU
  • Como ativar métodos SSH personalizados

Pré-requisitos

Antes de executar esses procedimentos, instale a Google Cloud CLI, 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 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.

  1. Crie uma rede que corresponda a um dos seguintes formatos válidos:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/global/networks/{network}
    • 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.

  2. Crie uma sub-rede que corresponda a um dos seguintes formatos válidos:

    • https://www.googleapis.com/compute/{version}/projects/{proj-id}/regions/{region}/subnetworks/{subnetwork}
    • 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.

  3. Crie o 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 campos network e subnetwork 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.18.0-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

Ativar endereços IP internos

Quando você cria uma TPU, endereços IP externos são criados por padrão para cada VM de TPU.

Se você quiser criar endereços IP internos para suas VMs TPU, use a flag --internal-ips ao criar a 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.18.0-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

Ativar métodos SSH personalizados

Para se conectar a TPUs usando SSH, ative endereços IP externo para as TPUs ou ative o Acesso privado do Google na subrede 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 externo podem usar o Acesso privado do Google para acessar APIs e serviços do Google. Para mais informações sobre como ativar o Acesso privado 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 projeto do Google Cloud em que você cria a VM do 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 do TPU chamar outros serviços do 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.18.0-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.18.0-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 tpus tpu-vm compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22