Conectar una TPU a una red de VPC compartida

En esta guía se explica cómo configurar las TPUs de Cloud que usan una red de VPC compartida gestionada de forma centralizada. En este documento se da por hecho que conoces las VPCs y que has creado una VPC compartida. Para obtener más información sobre cómo crear y gestionar redes de VPC compartidas, consulta el artículo Crear y modificar redes de VPC compartidas.

Configurar un proyecto host de VPC

Debes conceder a la cuenta de servicio de TPU de tu proyecto de servicio permisos para gestionar recursos en el proyecto host. Para ello, usa el rol "Agente de VPC compartida de TPU" (roles/tpu.xpnAgent). Ejecuta los siguientes comandos gcloud para conceder este enlace de rol.

gcloud projects add-iam-policy-binding host-project-id \
--member=serviceAccount:service-your-service-project-number@gcp-sa-tpu.iam.gserviceaccount.com \
--role=roles/tpu.xpnAgent

Crear una VM de TPU conectada a una red de VPC compartida

Primero, determina qué tipos y versiones de acelerador están disponibles en la zona.

gcloud compute tpus accelerator-types list --zone zone
gcloud compute tpus versions list --zone zone

Cuando creas tu TPU, conectas una VM de TPU a una red de VPC compartida. Especifica tu VPC compartida con la etiqueta --network:

gcloud compute tpus tpu-vm create tpu-name \
   --zone zone \
   --accelerator-type accelerator-type \
   --network projects/host-project-id/global/networks/host-network \
   --version tpu-image-version \
   --project your-service-project-id

Puedes verificar que tu VM de TPU está conectada a tu VPC compartida con el comando gcloud describe:

$ gcloud compute tpus tpu-vm describe tpu-name --zone zone

La respuesta incluye la red a la que está conectada tu VM de TPU:

acceleratorType: v3-8
apiVersion: V2
cidrBlock: 10.128.0.0/20
createTime: '2022-06-17T21:32:13.859274143Z'
health: HEALTHY
id: '0000000000000000000'
name: projects/my-project/locations/us-central1-b/nodes/my-tpu
networkConfig:
  enableExternalIps: true
  network: projects/my-project/global/networks/default
  subnetwork: projects/my-project/regions/us-central1/subnetworks/default
networkEndpoints:
- accessConfig:
    externalIp: 000.000.000.000
  ipAddress: 10.128.0.104
  port: 8470
runtimeVersion: tpu-vm-tf-2.8.0
schedulingConfig: {}
serviceAccount:
  email: 00000000000-compute@developer.gserviceaccount.com
  scope:
  - https://www.googleapis.com/auth/devstorage.read_write
  - https://www.googleapis.com/auth/logging.write
  - https://www.googleapis.com/auth/service.management
  - https://www.googleapis.com/auth/servicecontrol
  - https://www.googleapis.com/auth/cloud-platform
  - https://www.googleapis.com/auth/pubsub
shieldedInstanceConfig: {}
state: READY

Eliminar la VM de TPU

Cuando hayas terminado de usar la VM de TPU, asegúrate de eliminarla.

gcloud compute tpus tpu-vm delete tpu-name --zone zone