Configura las herramientas de redes y el acceso a tu Cloud TPU

Esta página describe cómo establecer configuraciones personalizadas de red y acceso para tu Cloud TPU, que incluye lo siguiente:

  • Especifica una red y una subred personalizadas
  • Especifica direcciones IP internas
  • Habilita el acceso SSH a las TPU
  • Cómo conectar una cuenta de servicio personalizada a tu TPU
  • Habilita métodos SSH personalizados

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.

  1. Crea una red que coincida con uno de los siguientes 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 obtener más información, consulta Crea y administra VPC redes.

  2. Crea una subred que coincida con uno de los siguientes 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 obtener más información, consulta Crea y administra redes de VPC.

  3. Crea la 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 --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 a curl, agrega los campos network y subnetwork 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.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

Habilitar direcciones IP internas

Cuando creas una TPU, las direcciones externas Las direcciones IP se crean de forma predeterminada para cada VM de TPU.

Si, en cambio, quieres crear direcciones IP internas para tus VMs de TPU, usa el --internal-ips cuando creas la TPU.

gcloud

Si usas recursos en cola, haz lo siguiente:

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 Create Node, haz lo siguiente:

$ 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 como 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.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

Habilita métodos SSH personalizados

Para conectarte a las TPU con SSH, debes habilitar las direcciones IP externas para las TPU o habilitar Acceso privado a Google para las subred a la que están conectadas las VMs de TPU.

Habilite el Acceso privado a Google

Las TPU que no tienen direcciones IP externas pueden usar el Acceso privado a Google para acceder a los servicios y las APIs de Google. Para obtener más información sobre cómo habilitar el 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.

Adjunta una cuenta de servicio personalizada

Cada VM de TPU tiene una cuenta de servicio asociada que usa para realizar 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 la TPU Visualizador para llamar a la Cloud TPU API de gcloud. 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.0-pjrt \
    --service-account=SERVICE_ACCOUNT

curl

Establece 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.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

Habilita 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 la configuración de red predeterminada, debes habilitar explícitamente el acceso SSH agregando una regla de firewall:

$ gcloud compute tpus tpu-vm compute firewall-rules create \
    --network=NETWORK allow-ssh \
    --allow=tcp:22