Configura una red de VPC

Google Cloud Managed Lustre se ejecuta dentro de una nube privada virtual (VPC) que proporciona funcionalidad de herramientas de redes para las instancias de máquina virtual (VM) de Compute Engine, los clústeres de Google Kubernetes Engine (GKE), y cargas de trabajo sin servidores.

Se debe especificar la misma red de VPC cuando se crea la instancia de Managed Lustre y las VMs de Compute Engine o los clústeres de Google Kubernetes Engine del cliente.

Permisos necesarios

Debes tener los siguientes permisos de IAM:

  • serviceusage.services.enable
  • compute.networks.create
  • compute.addresses.create
  • compute.addresses.get
  • compute.firewalls.create
  • servicenetworking.services.addPeering

Para otorgar estos permisos, agrega todos los siguientes roles predefinidos:

O bien, crea un rol personalizado que contenga los permisos específicos.

Para otorgar una función a un usuario, haz lo siguiente:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:EMAIL_ADDRESS"
  --role=ROLE

Crea y configura la VPC

  1. Habilita las redes de servicio.

    gcloud services enable servicenetworking.googleapis.com
    
  2. Crea una red de VPC en modo personalizado.

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. Crea una subred principal para tus recursos de GKE o Compute Engine.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. Asigna un rango de IP para el acceso privado a servicios.

    Este rango de IP interna se usa para la conexión de acceso a servicios privados, que vincula tu red de VPC con la red administrada por Google en la que se aprovisionan los recursos de Managed Lustre. Este rango asignado se usa para proporcionar IPs para instancias de Managed Lustre y no debe superponerse con ninguna subred de tu red de VPC.

    Cada instancia de Managed Lustre requiere un bloque CIDR contiguo con una longitud de prefijo de al menos 23.

    Recomendamos crear un rango de IP más grande de /20 para permitir la creación de varias instancias de Managed Lustre o el uso de otros Google Cloud servicios.

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. Obtén el bloque CIDR asociado con el rango que creaste en el paso anterior.

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. Crea una regla de firewall para permitir el tráfico TCP desde el rango de IP que creaste.

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    
  7. Conecta el intercambio de tráfico.

    gcloud services vpc-peerings connect \
      --network=NETWORK_NAME \
      --ranges=IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

Crea subredes adicionales para varias NIC

Si planeas usar varias tarjetas de interfaz de red (varias NIC) para agregar ancho de banda, debes crear una subred independiente dentro de tu red de VPC para cada NIC.

Para beneficiarte de varias NIC, debes usar tipos de máquinas de Compute Engine con varias NIC físicas que estén conectadas a VPCs regulares. Las NIC que se conectan a VPCs con perfiles de red de RDMA no se pueden usar para aumentar el ancho de banda de red general. Consulta Redes y máquinas con GPU para obtener más detalles.

Para crear una subred para una NIC física adicional, haz lo siguiente:

gcloud compute networks subnets create SUBNET_NAME_2 \
  --network=NETWORK_NAME \
  --range=10.130.0.0/20 \
  --region=REGION

Repite este paso para cada NIC adicional. Asegúrate de que los rangos de IP de cada subred no se superpongan entre sí.

Controles del servicio de VPC

Managed Lustre admite los Controles del servicio de VPC (VPC-SC). Consulta Protege instancias con un perímetro de servicio para obtener más detalles.

Soluciona problemas de configuración de VPC

Se denegó el permiso para agregar intercambio de tráfico para el servicio servicenetworking.googleapis.com

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

Este error significa que no tienes el permiso de IAM servicenetworking.services.addPeering en tu cuenta de usuario.

Consulta Control de acceso con IAM para obtener instrucciones sobre cómo agregar uno de los siguientes roles a tu cuenta:

  • roles/compute.networkAdmin o
  • roles/servicenetworking.networksAdmin

No se pueden modificar los rangos asignados en CreateConnection

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."

Este error se muestra cuando ya creaste un intercambio de tráfico entre VPCs en esta red con diferentes rangos de IP. Hay dos soluciones posibles:

Reemplaza los rangos de IP existentes:

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

O bien, agrega el nuevo rango de IP a la conexión existente:

  1. Recupera la lista de rangos de IP existentes para el intercambio de tráfico:

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. Luego, agrega el nuevo rango al intercambio de tráfico:

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

Se agotó el rango de direcciones IP

Si la creación de la instancia falla con un error de rango de direcciones IP agotado, haz lo siguiente:

ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

Sigue la guía de VPC para modificar la conexión privada existente y agregar rangos de direcciones IP.

Recomendamos una longitud de prefijo de al menos /20 (4,096 direcciones).

¿Qué sigue?