Configurar uma rede VPC

O Google Cloud Managed Lustre é executado em uma nuvem privada virtual (VPC) que oferece funcionalidade de rede para instâncias de máquina virtual (VM) do Compute Engine, clusters do Google Kubernetes Engine (GKE) e cargas de trabalho sem servidor.

A mesma rede VPC precisa ser especificada ao criar a instância do Managed Lustre e as VMs do Compute Engine ou os clusters do Google Kubernetes Engine do cliente.

Permissões necessárias

Você precisa ter as seguintes permissões do IAM:

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

Essas permissões podem ser concedidas adicionando todos os papéis predefinidos a seguir:

Ou crie um papel personalizado com as permissões específicas.

Para conceder um papel a um usuário:

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

Criar e configurar a VPC

  1. Ative o Service Networking.

    gcloud services enable servicenetworking.googleapis.com
    
  2. Crie uma rede VPC no modo personalizado.

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. Crie uma sub-rede principal para seus recursos do GKE ou do Compute Engine.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. Alocar um intervalo de IP para acesso a serviços particulares.

    Esse intervalo de IP interno é usado para a conexão de acesso a serviços particulares, que faz peering da sua rede VPC com a rede gerenciada pelo Google em que os recursos do Managed Lustre são provisionados. Esse intervalo alocado é usado para fornecer IPs para instâncias do Managed Lustre e não pode se sobrepor a nenhuma sub-rede na rede VPC.

    Cada instância do Managed Lustre requer um bloco CIDR contíguo com um comprimento de prefixo de pelo menos 23.

    Recomendamos criar um intervalo de IP maior de /20 para permitir a criação de várias instâncias do Managed Lustre ou o uso de outros serviços. Google Cloud

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. Receba o bloco CIDR associado ao intervalo criado na etapa anterior.

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. Crie uma regra de firewall para permitir o tráfego TCP do intervalo de IP que você criou.

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    
  7. Conecte o peering.

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

Criar sub-redes adicionais para multi-NIC

Se você planeja usar várias placas de rede (multi-NIC) para agregar largura de banda, crie uma sub-rede separada na rede VPC para cada placa de rede.

Para aproveitar os benefícios de várias NICs, use tipos de máquinas do Compute Engine com várias NICs físicas conectadas a VPCs regulares. As NICs que se conectam a VPCs com perfis de rede RDMA não podem ser usadas para aumentar a largura de banda geral da rede. Consulte Rede e máquinas com GPU para mais detalhes.

Para criar uma sub-rede para uma NIC física adicional:

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

Repita essa etapa para cada NIC adicional. Verifique se os intervalos de IP de cada sub-rede não se sobrepõem.

VPC Service Controls

O Managed Lustre é compatível com o VPC Service Controls (VPC-SC). Consulte Proteger instâncias com um perímetro de serviço para mais detalhes.

Solução de problemas na configuração da VPC

Permissão negada para adicionar peering ao serviço 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'.

Esse erro significa que você não tem a permissão do IAM servicenetworking.services.addPeering na sua conta de usuário.

Consulte Controle de acesso com o IAM para instruções sobre como adicionar um dos seguintes papéis à sua conta:

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

Não é possível modificar intervalos alocados em 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."

Esse erro é retornado quando você já criou um peering de VPC nessa rede com intervalos de IP diferentes. Há duas soluções possíveis:

Substitua os intervalos de IP atuais:

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

Ou adicione o novo intervalo de IP à conexão atual:

  1. Recupere a lista de intervalos de IP atuais para o peering:

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. Em seguida, adicione o novo intervalo ao peering:

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

Intervalo de endereços IP esgotado

Se a criação da instância falhar com um erro de intervalo de endereços IP esgotado:

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

Siga o guia da VPC para modificar a conexão particular atual e adicionar intervalos de endereços IP.

Recomendamos um comprimento de prefixo de pelo menos /20 (4.096 endereços).

A seguir