Configura la red y el acceso a tu Cloud TPU
En esta página, se describe cómo configurar redes personalizadas y parámetros de configuración de acceso para tu Cloud TPU, lo que incluye el siguiente contenido:
- Cómo especificar una red y una subred personalizadas
- Cómo especificar direcciones IP internas y externas
- Cómo habilitar el acceso SSH a las TPU
- Conecta una cuenta de servicio personalizada a tu TPU
- Cómo habilitar métodos SSH personalizados
- Usa los Controles del servicio de VPC
Requisitos previos
Antes de ejecutar estos procedimientos, debes instalar Google Cloud CLI, crear un proyecto de Google Cloud y habilitar la API de Cloud TPU. Para obtener instrucciones, consulta Configura el entorno de Cloud TPU.
Especifica una red y una subred personalizadas
De forma opcional, puedes especificar la red y la subred que se usarán 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 Crea y administra 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 Crea y administra redes de VPC.
Crea una VM de TPU y especifica la red y la subred personalizadas:
gcloud
Para especificar la red y la subred con la CLI de
gcloud, agrega las marcas--networky--subnetworka 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 a
curl, agrega los camposnetworkysubnetworkal 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 internas y externas
Cuando creas VMs de TPU, estas siempre incluyen direcciones IP internas de forma automática. Si las VMs de TPU se crean con gcloud CLI, las direcciones IP externas se generan de forma predeterminada. Si se crean con las APIs de REST de Cloud TPU (tpu.googleapis.com), no se asigna una dirección IP externa de forma predeterminada. Puedes cambiar el comportamiento predeterminado en ambos casos.
Direcciones IP externas
Cuando crea una TPU con gcloud, se crean direcciones IP externas de forma predeterminada para cada VM de TPU.
Si deseas crear una VM de TPU sin una IP externa, usa la marca --internal-ips que se muestra en los siguientes ejemplos cuando crees la VM de TPU.
gcloud
Si usas recursos en cola, sigue los siguientes pasos:
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 de creación de nodos, sigue los siguientes pasos:
$ gcloud compute tpus tpu-vm create TPU_NAME \ --zone=us-central2-b \ --accelerator-type=v4-8 \ --version=tpu_software_version \ --internal-ips
curl
Establece el campo enable_external_ips en false 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 cuando usas la API de REST (tpu.googleapis.com), establece el campo networkconfig.enable_external_ips en la solicitud como true.
Direcciones IP internas
Las VMs de TPU siempre tienen direcciones IP internas. Los usuarios de Cloud TPU pueden querer restringir sus VMs de TPU solo a direcciones IP internas por algunos motivos clave:
Seguridad mejorada: Solo se puede acceder a las IP internas desde los recursos que se encuentran dentro de la misma red de VPC, lo que puede mejorar la seguridad, ya que limita el acceso externo a las VMs de TPU. Esto es especialmente importante cuando trabajas con datos sensibles o cuando deseas restringir el acceso a tus TPU a usuarios o sistemas específicos dentro de tu red.
Ahorro de costos: Cuando usas direcciones IP internas, puedes evitar los costos asociados a las direcciones IP externas, que pueden ser significativos para una gran cantidad de VMs de TPU.
Mejora del rendimiento de la red: Las IP internas pueden generar un mejor rendimiento de la red, ya que el tráfico permanece dentro de la red de Google, lo que evita la sobrecarga del enrutamiento por el Internet público. Esto es relevante sobre todo para las cargas de trabajo de aprendizaje automático a gran escala que necesitan comunicación de alto ancho de banda entre las VMs de TPU.
Habilita métodos de SSH personalizados
Para conectarte a las TPU con SSH, debes habilitar direcciones IP externas para las TPU o habilitar el Acceso privado a Google para la subred a la que están conectadas las VMs de TPU.
Habilita el Acceso privado a Google
Las TPU que no tienen direcciones IP externas pueden usar el Acceso privado a Google para acceder a las APIs de Google y los servicios. Para obtener más información sobre Acceso privado a Google, consulta Configura el Acceso privado a Google.
Después de configurar el Acceso privado a Google, conéctate a la VM con SSH.
Conecta una cuenta de servicio personalizada
Cada VM de TPU tiene una cuenta de servicio asociada que usa para hacer solicitudes a la API en tu nombre. Las VMs de TPU usan esta cuenta de servicio para llamar a las APIs de Cloud TPU y acceder a Cloud Storage y 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 de Google Cloud en el que creas tu VM de TPU. Las cuentas de servicio personalizadas que se usan para las VMs de TPU deben tener el rol de Visualizador de TPU para llamar a la API de Cloud TPU. Si el código que se ejecuta en tu VM de TPU llama a otros servicios de Google Cloud , debe tener los roles necesarios para acceder a esos servicios.
Para obtener más información sobre las cuentas de servicio, consulta Cuentas de servicio.
Usa los siguientes comandos para especificar una cuenta de servicio personalizada.
gcloud
Usa la marca --service-account cuando crees 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
Configura 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
Habilita métodos de SSH personalizados
La red predeterminada permite el acceso SSH a todas las VMs de TPU. Si usas una red que no sea la predeterminada o cambias la configuración de la red predeterminada, debes habilitar de forma explícita el acceso SSH agregando una regla de firewall:
$ gcloud compute firewall-rules create \ --network=NETWORK allow-ssh \ --allow=tcp:22
Integración con los Controles del servicio de VPC
Los Controles del servicio de VPC de Cloud TPU te permiten definir perímetros de seguridad alrededor de los recursos de Cloud TPU y controlar el movimiento de datos en el límite perimetral. Para obtener más información sobre los Controles del servicio de VPC, consulta la Descripción general de los Controles del servicio de VPC. Para conocer las limitaciones en el uso de Cloud TPU con los Controles del servicio de VPC, consulta la página sobre los productos admitidos y las limitaciones.