Configurar la red y el acceso a tu TPU de Cloud
En esta página se describe cómo configurar redes y accesos personalizados para tu TPU de Cloud, entre los que se incluyen los siguientes:
- Especificar una red y una subred personalizadas
- Especificar direcciones IP externas e internas
- Habilitar el acceso SSH a las TPUs
- Asociar una cuenta de servicio personalizada a una TPU
- Habilitar métodos SSH personalizados
- Usar Controles de Servicio de VPC
Requisitos previos
Antes de ejecutar estos procedimientos, debes instalar la CLI de Google Cloud, crear un Google Cloud proyecto y habilitar la API Cloud TPU. Para obtener instrucciones, consulta Configurar el entorno de Cloud TPU.
Especificar una red y una subred personalizadas
También puedes especificar la red y la subred que quieras usar para la TPU. Si no se especifica la red, la TPU estará en la red default
. La subred debe estar en la misma región que la zona en la que se ejecuta la TPU.
Crea una red que coincida con uno de los siguientes 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 obtener más información, consulta Crear y gestionar redes de VPC.
Crea una subred que coincida con uno de los siguientes 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 obtener más información, consulta Crear y gestionar redes de VPC.
Crea una VM de TPU y especifica la red y la subred personalizadas:
gcloud
Para especificar la red y la subred mediante la CLI de
gcloud
, añade las marcas--network
y--subnetwork
a tu solicitud de creación:$ 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 la red y la subred en una llamada
curl
, añade los camposnetwork
ysubnetwork
al cuerpo de la solicitud:$ 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
Información sobre las direcciones IP externas e internas
Cuando creas máquinas virtuales de TPU, siempre tienen direcciones IP internas automáticamente. Si las VMs de TPU se crean mediante la CLI de gcloud, se generarán direcciones IP externas de forma predeterminada. Si se crean a través de las APIs REST de Cloud TPU (tpu.googleapis.com), no se les asigna ninguna dirección IP externa de forma predeterminada. Puedes cambiar el comportamiento predeterminado en ambos casos.
Direcciones IP externas
Cuando creas una TPU con gcloud
, se crean direcciones IP externas de forma predeterminada para cada máquina virtual de TPU.
Si quieres crear una VM de TPU sin IP externa, usa la marca --internal-ips
que se muestra en los siguientes ejemplos al crear la VM de TPU.
gcloud
Si usas recursos en cola:
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
Si usas la 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
Asigna el valor false
al campo enable_external_ips
en el cuerpo de la solicitud:
$ 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 crear una VM de TPU con una dirección IP externa al usar la API REST (tpu.googleapis.com
), defina el campo networkconfig.enable_external_ips
de la solicitud como true
.
Direcciones IP internas
Las VMs de TPU siempre tienen direcciones IP internas. Los usuarios de TPUs de Cloud pueden querer restringir sus máquinas virtuales de TPU a direcciones IP internas por varios motivos clave:
Seguridad mejorada: solo se puede acceder a las IPs internas desde los recursos de la misma red VPC, lo que puede mejorar la seguridad al limitar el acceso externo a las VMs de TPU. Esto es especialmente importante cuando se trabaja con datos sensibles o cuando quieres restringir el acceso a tus TPUs a usuarios o sistemas específicos de tu red.
Ahorro de costes: al usar direcciones IP internas, puedes evitar los costes asociados a las direcciones IP externas, que pueden ser significativos si tienes un gran número de VMs de TPU.
Rendimiento de red mejorado: las IPs internas pueden mejorar el rendimiento de la red, ya que el tráfico permanece en la red de Google, lo que evita la sobrecarga del enrutamiento a través de Internet pública. Esto es especialmente importante en el caso de las cargas de trabajo de aprendizaje automático a gran escala que necesitan una comunicación de gran ancho de banda entre las máquinas virtuales de TPU.
Habilitar métodos SSH personalizados
Para conectarte a las TPUs mediante SSH, debes habilitar las direcciones IP externas de las TPUs o habilitar el acceso privado de Google en la subred a la que estén conectadas las VMs de TPU.
Habilitar Acceso privado de Google
Las TPU que no tienen direcciones IP externas pueden usar Acceso privado de Google para acceder a las APIs y los servicios de Google. Para obtener más información sobre cómo habilitar Acceso privado de Google, consulta el artículo Configurar Acceso privado de Google.
Una vez que hayas configurado Acceso privado de Google, conéctate a la VM mediante SSH.
Asociar una cuenta de servicio personalizada
Cada VM de TPU tiene una cuenta de servicio asociada que usa para hacer solicitudes de API en tu nombre. Las VMs de TPU usan esta cuenta de servicio para llamar a las APIs de TPU de Cloud y acceder a Cloud Storage y a otros servicios. De forma predeterminada, tu VM de TPU usa la cuenta de servicio predeterminada de Compute Engine.
La cuenta de servicio debe definirse en el mismo proyecto Google Cloud en el que crees tu máquina virtual de TPU. Las cuentas de servicio personalizadas que se usen en las VMs de TPU deben tener el rol Lector de TPU para llamar a la API Cloud TPU. Si el código que se ejecuta en tu VM de TPU llama a otros servicios Google Cloud , debe tener los roles necesarios para acceder a ellos.
Para obtener más información sobre las cuentas de servicio, consulta el artículo Cuentas de servicio.
Usa los siguientes comandos para especificar una cuenta de servicio personalizada.
gcloud
Usa la marca --service-account
al crear una 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
Define el campo service_account
en el cuerpo de la solicitud:
$ 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
Habilitar métodos SSH personalizados
La red predeterminada permite el acceso SSH a todas las VMs de TPU. Si usas una red que no es la predeterminada o cambias los ajustes de la red predeterminada, debes habilitar explícitamente el acceso SSH añadiendo una regla de cortafuegos:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Integración con Controles de Servicio de VPC
Controles de Servicio de VPC de Cloud TPU te permite definir perímetros de seguridad en torno a tus recursos de Cloud TPU y controlar el movimiento de datos a través del límite del perímetro. Para obtener más información sobre Controles de Servicio de VPC, consulta la información general sobre Controles de Servicio de VPC. Para obtener información sobre las limitaciones de uso de Cloud TPU con Controles de Servicio de VPC, consulta los productos compatibles y las limitaciones.