Redes de VPC compartidas

En esta guía, se explica cómo configurar Cloud TPU que usan una red de VPC compartida administrada de manera central. Una red de VPC compartida permite que tu organización conecte recursos desde varios proyectos a una red común.

Antes de comenzar

  1. Si no tienes la CLI de Google Cloud instalada, instálala ahora.
  2. Inicializa Google Cloud CLI.
  3. Familiarízate con los conceptos de VPC compartida.
  4. Habilita un proyecto host que contenga una o más redes de VPC compartida. Esto debes hacerlo mediante un administrador de VPC compartida.
  5. Conecta uno o más proyectos de servicio a tu red de VPC compartida. Esto debes hacerlo mediante un administrador de VPC compartida.
  6. Crea una red de VPC en el proyecto host.

Configura el acceso privado a los servicios

El acceso privado a servicios se usa para crear un intercambio de tráfico de VPC entre tu red y la red de servicios de Cloud TPU. Antes de usar TPU con VPC compartidas, debes establecer una conexión de acceso a servicios privados para la red.

  1. Obtén el ID de tu proyecto host de VPC compartida y, luego, configura el comando de la CLI de Google Cloud con tu ID del proyecto como se muestra a continuación:

      gcloud config set project project-id
    

    Puedes obtener el ID del proyecto desde Google Cloud Console.

  2. Habilita la API de Service Networking con el siguiente comando de la CLI de Google Cloud.

      gcloud services enable servicenetworking.googleapis.com
    

    También puede habilitar la API de Service Networking desde Google Cloud Console.

  3. Asignar un rango de direcciones reservadas para que lo use Service Networking. El prefix-length debe ser 24 o menos. Por ejemplo:

    gcloud compute addresses create SN-RANGE-1 --global \
    --addresses=10.110.0.0 \
    --prefix-length=16 \
    --purpose=VPC_PEERING \
    --network=network-name
  4. Establece una conexión de acceso a servicios privados

      gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com --ranges=SN-RANGE-1 --network=network-name

  5. Verifica si se estableció una conexión de acceso a servicios privados para la red. Si ya se estableció, puedes comenzar a usar TPU con la VPC compartida.

Verifica el acceso privado a los servicios

Ejecuta el siguiente comando a fin de verificar si se estableció para tu red una conexión de acceso privado a servicios:

gcloud services vpc-peerings list --network=network-name

Usa TPU con redes de VPC compartida

Luego de establecer tu red de VPC con la red de servicios de Google, puedes comenzar a aprovisionar Cloud TPU.

Configura la CLI de Google Cloud

  1. Crea una variable para el ID de tu proyecto.

    export PROJECT_ID=project-id
    
  2. Configura la CLI de Google Cloud para usar el proyecto en el que deseas crear Cloud TPU.

    gcloud config set project ${PROJECT_ID}
    

Activa la API de TPU

Para usar Cloud TPU, debes activar la API de TPU en tu proyecto. Ejecuta el siguiente comando de la CLI de Google Cloud para habilitar la API de TPU.

gcloud services enable tpu.googleapis.com

También puedes habilitarlo en Google Cloud Console.

Activa la API de Herramientas de redes de servicios

Para crear TPU con redes de VPC compartida, necesitas activar la API de Herramientas de redes de servicios en el proyecto de servicio. Esto solo es necesario una vez por proyecto de Cloud Platform. Ejecuta el siguiente comando de la CLI de Google Cloud para habilitar la API de Service Networking.

gcloud services enable servicenetworking.googleapis.com

También puedes habilitarlo desde Google Cloud Console.

Otorga permisos a la cuenta de servicio en el proyecto host

Cuando usas la arquitectura de VM de TPU, debes otorgar los permisos de cuenta de servicio de TPU del proyecto de servicio para administrar los recursos en el proyecto host. Para ello, usa la función de agente de VPC compartida de TPU (roles/tpu.xpnAgent). Ejecuta los siguientes comandos de la CLI de Google Cloud para otorgar esta vinculación de función.

  1. Crea una variable para el ID de tu proyecto host de VPC compartida.

      export HOST_PROJECT_ID=host-project-id
    
  2. Crea una variable para el número de proyecto de tu proyecto de servicio. Este es el proyecto en el que creas las TPU. Puedes encontrarlo en Google Cloud Console con estas instrucciones.

      export PROJECT_NUMBER=service-project-number
    
  3. Agrega una vinculación de función en el proyecto host de VPC compartida para la cuenta de servicio de TPU del proyecto de servicio.

    gcloud projects add-iam-policy-binding $HOST_PROJECT_ID \
      --member=service-${PROJECT_NUMBER}@gcp-sa-tpu.iam.gserviceaccount.com \
      --role=roles/tpu.xpnAgent
    

Crea TPU

Puedes iniciar una VM de Compute Engine y Cloud TPU con el comando de la CLI de Google Cloud. El comando que uses depende de si usas VM de TPU o nodos TPU. Para obtener más información, consulta Arquitectura del sistema.

VM de TPU

$ gcloud compute tpus tpu-vm create tpu-name \
  --zone=zone \
  --accelerator-type=v3-8 \
  --version=tpu-vm-tf-2.7.0 \
  --network=network-name

Nodo TPU

$ gcloud compute tpus execution-groups create \
  --name=tpu-name \
  --zone=zone \
  --tf-version=2.7.0 \
  --machine-type=n1-standard-1 \
  --accelerator-type=v3-8 \
  --network=network-name \
  --use-service-networking
  • Si usas el nodo TPU, establece use-service-networking en true para crear Cloud TPU que se puedan conectar a redes de VPC compartidas.

  • El campo de red debe incluir el ID o el número del proyecto host y el nombre de la red. Por ejemplo, projects/my-host-project-id/global/networks/my-network.

  • Para obtener información sobre qué zonas de GCP son compatibles con Cloud TPU, consulta las zonas disponibles.

Para obtener más información sobre cómo trabajar con TPU, consulta la Guía del usuario de Cloud TPU.

Borra el intercambio de tráfico de VPC

Se puede desconectar una conexión de intercambio de tráfico con la API de procesamiento de red. Estas llamadas deben realizarse en proyectos host de VPC compartida.

  1. Enumera todos los intercambios de tráfico de VPC.

    gcloud compute networks peerings list --network=network-name
    
  2. Borra un intercambio de tráfico de VPC.

    gcloud compute networks peerings delete peering-name --network=network-name