VPC-Netzwerk konfigurieren

Google Cloud Managed Lustre wird in einer Virtual Private Cloud (VPC) ausgeführt, die Netzwerkfunktionen für VM-Instanzen von Compute Engine, Cluster von Google Kubernetes Engine (GKE) und serverlose Arbeitslasten bietet.

Beim Erstellen der verwalteten Lustre-Instanz und der Client-Compute Engine-VMs oder Google Kubernetes Engine-Cluster muss dasselbe VPC-Netzwerk angegeben werden.

Erforderliche Berechtigungen

Sie benötigen die folgenden IAM-Berechtigungen:

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

Diese Berechtigungen können durch Hinzufügen aller der folgenden vordefinierten Rollen erteilt werden:

Alternativ können Sie eine benutzerdefinierte Rolle mit den spezifischen Berechtigungen erstellen.

So weisen Sie einem Nutzer eine Rolle zu:

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

VPC erstellen und konfigurieren

  1. Aktivieren Sie Service Networking.

    gcloud services enable servicenetworking.googleapis.com
    
  2. Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus.

    gcloud compute networks create NETWORK_NAME \
      --subnet-mode=custom \
      --mtu=8896
    
  3. Erstellen Sie ein primäres Subnetz für Ihre GKE- oder Compute Engine-Ressourcen.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=NETWORK_NAME \
      --range=10.128.0.0/20 \
      --region=REGION
    
  4. Weisen Sie einen IP-Bereich für den Zugriff auf private Dienste zu.

    Dieser interne IP-Bereich wird für die Verbindung für den Zugriff auf private Dienste verwendet, über die Ihr VPC-Netzwerk mit dem von Google verwalteten Netzwerk verbunden wird, in dem Managed Lustre-Ressourcen bereitgestellt werden. Dieser zugewiesene Bereich wird verwendet, um IP-Adressen für Managed Lustre-Instanzen bereitzustellen. Er darf sich nicht mit Subnetzen in Ihrem VPC-Netzwerk überschneiden.

    Für jede Managed Lustre-Instanz ist ein zusammenhängender CIDR-Block mit einer Präfixlänge von mindestens 23 erforderlich.

    Wir empfehlen, einen größeren IP-Bereich von /20 zu erstellen, um die Erstellung mehrerer Managed Lustre-Instanzen oder die Verwendung anderer Google Cloud Dienste zu ermöglichen.

    gcloud compute addresses create IP_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --prefix-length=20 \
      --description="Managed Lustre VPC Peering" \
      --network=NETWORK_NAME
    
  5. Rufen Sie den CIDR-Block ab, der dem Bereich zugeordnet ist, den Sie im vorherigen Schritt erstellt haben.

    CIDR_BLOCK=$(
      gcloud compute addresses describe IP_RANGE_NAME \
        --global  \
        --format="value[separator=/](address, prefixLength)"
    )
    
  6. Erstellen Sie eine Firewallregel, die den TCP-Traffic aus dem von Ihnen erstellten IP-Bereich zulässt.

    gcloud compute firewall-rules create FIREWALL_NAME \
      --allow=tcp:988,tcp:6988 \
      --network=NETWORK_NAME \
      --source-ranges=$CIDR_BLOCK
    
  7. Stellen Sie die Peering-Verbindung her.

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

Zusätzliche Subnetze für mehrere NICs erstellen

Wenn Sie mehrere Netzwerkschnittstellenkarten (Multi-NIC) verwenden möchten, um die Bandbreite zu aggregieren, müssen Sie für jede NIC ein separates Subnetz in Ihrem VPC-Netzwerk erstellen.

Damit Sie von mehreren NICs profitieren können, müssen Sie Compute Engine-Maschinentypen mit mehreren physischen NICs verwenden, die an reguläre VPCs angehängt sind. NICs, die an VPCs mit RDMA-Netzwerkprofilen angehängt werden, können nicht verwendet werden, um die allgemeine Netzwerkbandbreite zu erhöhen. Weitere Informationen finden Sie unter Netzwerk und GPU-Maschinen.

So erstellen Sie ein Subnetz für eine zusätzliche physische NIC:

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

Wiederholen Sie diesen Schritt für jede zusätzliche NIC. Achten Sie darauf, dass sich die IP-Bereiche für die einzelnen Subnetze nicht überschneiden.

VPC Service Controls

Managed Lustre unterstützt VPC Service Controls (VPC-SC). Weitere Informationen finden Sie unter Instanzen mit einem Dienstperimeter sichern.

Fehlerbehebung bei der VPC-Einrichtung

Berechtigung zum Hinzufügen von Peering für Dienst servicenetworking.googleapis.com verweigert

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'.

Dieser Fehler bedeutet, dass Sie in Ihrem Nutzerkonto nicht über die IAM-Berechtigung servicenetworking.services.addPeering verfügen.

Unter Zugriffssteuerung mit IAM finden Sie eine Anleitung zum Hinzufügen einer der folgenden Rollen zu Ihrem Konto:

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

Die zugewiesenen Bereiche können in CreateConnection nicht geändert werden

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

Dieser Fehler wird zurückgegeben, wenn Sie bereits ein VPC-Peering für dieses Netzwerk mit anderen IP-Bereichen erstellt haben. Es gibt zwei mögliche Lösungen:

Vorhandene IP-Bereiche ersetzen:

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

Oder fügen Sie den neuen IP-Bereich der vorhandenen Verbindung hinzu:

  1. Rufen Sie die Liste der vorhandenen IP-Bereiche für das Peering ab:

    EXISTING_RANGES="$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())" \
        --flatten=reservedPeeringRanges
    )
    
  2. Fügen Sie dann den neuen Bereich dem Peering hinzu:

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

IP-Adressbereich aufgebraucht

Wenn beim Erstellen einer Instanz ein Fehler auftritt, weil der IP-Adressbereich ausgeschöpft ist:

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

Folgen Sie der VPC-Anleitung, um die vorhandene private Verbindung zu ändern und IP-Adressbereiche hinzuzufügen.

Wir empfehlen eine Präfixlänge von mindestens /20 (4.096 Adressen).

Nächste Schritte