Clúster de GKE con Cloud TPU mediante una VPC compartida

En esta guía, se describe cómo hacer las siguientes acciones:

  • Configura un clúster de GKE de Cloud TPU con una red de VPC compartida.
  • Configura las APIs y los rangos de IP necesarios para garantizar la comunicación entre el clúster, la VPC compartida y los servicios administrados de Google.
  • Crea rangos CIDR secundarios para los servicios y Pods del clúster.

Conceptos

Estos conceptos se usarán con frecuencia en esta guía:

  • Proyecto host: Un proyecto que contiene una o más redes de VPC compartida. En esta guía, este proyecto contendrá tu VPC compartida.

  • Proyecto de servicio: Un proyecto que un administrador de VPC compartida adjunta a un proyecto host. Este adjunto le permite participar en la VPC compartida. En esta guía, este proyecto contendrá tu clúster de Cloud TPU.

Requisitos

Habilita las APIs

  1. Habilita las siguientes APIs en la consola de Google Cloud para tu proyecto host:

  2. Habilita las siguientes APIs en la consola de Google Cloud para tu proyecto de servicio:

Configura el rango de IP para el intercambio de tráfico de VPC a los servicios administrados de Google

Sigue estos pasos para reservar un rango de IP en la red de VPC compartida en el proyecto host. Todos los servicios administrados por Google usarán el rango en esta red de VPC. Cloud TPU es uno de los servicios administrados de Google.

  1. Enumera los rangos de IP existentes en la red de VPC compartida.

    $ gcloud beta compute networks list-ip-addresses network \
    --project=host-project-id
    
  2. Elige un rango disponible y guárdalo en la red de VPC compartida.

    $ gcloud beta compute addresses create peering-name \
      --global \
      --prefix-length=16 \
      --network=network \
      --purpose=VPC_PEERING \
      --project=host-project-id
    

    peering-name especifica el nombre de la conexión de intercambio de tráfico de VPC. El nombre se usará en el siguiente paso.

  3. Crea una conexión de intercambio de tráfico entre redes de VPC entre el proyecto host y los servicios administrados por Google.

    $ gcloud beta services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=network \
      --ranges=peering-name \
      --project=host-project-id
    

Crea rangos de IP secundarios para el clúster

En tu red de VPC compartida, selecciona o crea una subred y agrega dos rangos CIDR secundarios para los Pods y los servicios del clúster.

Estos rangos son para los Pods y los servicios del clúster, respectivamente. Los nombres de rango se usarán en los siguientes pasos.

  • subnet será la subred en el network de tu proyecto host.

  • tier-1-name será el nombre del rango secundario que usarán los Pods de GKE en subnet.

  • tier-2-name será el nombre del rango secundario que usarán los servicios de GKE en subnet.

Crea un clúster de GKE con Cloud TPU

El siguiente comando muestra cómo crear un GKE con los rangos CIDR existentes en la red de VPC compartida, lo que habilita Cloud TPU:

$ gcloud beta container clusters create cluster-name \
  --enable-ip-alias \
  --network projects/host-project-id/global/networks/network \
  --subnetwork projects/host-project-id/regions/region/subnetworks/subnet \
  --cluster-secondary-range-name tier-1-name \
  --services-secondary-range-name tier-2-name \
  --scopes=cloud-platform \
  --enable-tpu \
  --enable-tpu-service-networking \
  --project=service-project-id

Sigue los pasos de especificaciones de pod en la guía Ejecuta aplicaciones de Cloud TPU en GKE para compilar un trabajo que use recursos de Cloud TPU.

Realiza una limpieza

Una vez que termines con Cloud TPU en GKE, limpia los recursos a fin de evitar que se apliquen cargos adicionales a la cuenta de Facturación de Cloud

  1. Borra el rango de IP de intercambio de tráfico reservado.

    $ gcloud beta compute addresses delete peering-name \
      --global \
      --project=host-project-id
    
  2. Sigue las instrucciones en Realiza una limpieza en la sección Configura clústeres con VPC compartida para borrar el clúster y los recursos de red.