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.
É possível conectar a instância do Managed Lustre a VMs do Compute Engine ou clusters do Google Kubernetes Engine do cliente usando uma das seguintes configurações de rede:
- Mesma rede VPC: especifique a mesma rede VPC ao criar a instância do Managed Lustre e os recursos do cliente.
- Rede VPC com peering: conecte uma rede VPC com peering pelo Network Connectivity Center (NCC). O NCC permite conectar várias redes VPC e redes locais a um hub central, fornecendo conectividade entre elas. Para instruções sobre como configurar o NCC, consulte a documentação do Network Connectivity Center.
Permissões necessárias
Você precisa ter as seguintes permissões do IAM:
serviceusage.services.enablecompute.networks.createcompute.addresses.createcompute.addresses.getcompute.firewalls.createservicenetworking.services.addPeering
Essas permissões podem ser concedidas adicionando todos os seguintes papéis predefinidos:
- Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin) - Administrador de rede do Compute (
roles/compute.networkAdmin) - Administrador de segurança do Compute (
roles/compute.securityAdmin)
Ou crie um papel personalizado que contenha 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
Ative o Service Networking.
gcloud services enable servicenetworking.googleapis.comCrie uma rede VPC no modo personalizado.
gcloud compute networks create NETWORK_NAME \ --subnet-mode=custom \ --mtu=8896Crie 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=REGIONAlocar 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 privados, que conecta 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 sua 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 Google Cloud serviços.
gcloud compute addresses create IP_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=20 \ --description="Managed Lustre VPC Peering" \ --network=NETWORK_NAMEReceba 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)" )Crie uma regra de firewall para permitir o tráfego TCP do intervalo de IP criado.
gcloud compute firewall-rules create FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=NETWORK_NAME \ --source-ranges=$CIDR_BLOCKSe as VMs do cliente ou os clusters do GKE residirem em uma rede VPC com peering conectada pelo Network Connectivity Center (NCC), as regras de firewall nas duas redes VPC precisarão permitir o tráfego entre as sub-redes do cliente e o intervalo de IP alocado (
$CIDR_BLOCK). Execute o comando a seguir para criar uma regra de firewall na rede VPC conectada ao NCC:gcloud compute firewall-rules create PEER_FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=PEER_NETWORK_NAME \ --source-ranges=$CIDR_BLOCKEstabeleça a conexão de acesso a serviços particulares.
gcloud services vpc-peerings connect \ --network=NETWORK_NAME \ --ranges=IP_RANGE_NAME \ --service=servicenetworking.googleapis.comEssa conexão só é necessária na rede VPC em que a instância do Managed Lustre é provisionada.
Criar sub-redes adicionais para várias placas de rede
Se você planeja usar várias placas de interface de rede (várias placas de rede) para agregar largura de banda, crie uma sub-rede separada na sua rede VPC para cada placa de rede.
Para aproveitar várias placas de rede, use tipos de máquinas do Compute Engine com várias placas de rede físicas anexadas a VPCs normais. As placas de rede 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 Máquinas de rede e GPU para mais detalhes.
Para criar uma sub-rede para uma placa de rede física adicional:
gcloud compute networks subnets create SUBNET_NAME_2 \
--network=NETWORK_NAME \
--range=10.130.0.0/20 \
--region=REGION
Repita esta etapa para cada placa de rede adicional. Verifique se os intervalos de IP de cada sub-rede não se sobrepõem.
VPC Service Controls
O Managed Lustre oferece suporte ao VPC Service Controls (VPC-SC). Consulte Proteger instâncias com um perímetro de serviço para mais detalhes.
Solução de problemas de 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.networkAdminouroles/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:
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 )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).