Netzwerkkonfiguration des Dataproc-Clusters

Auf dieser Seite werden die Anforderungen an die Netzwerkkonfiguration von Dataproc-Clustern erläutert und Optionen.

Dataproc-Konnektivitätsanforderungen

Der Dataproc-Cluster muss sich in einem VPC-Netzwerk befinden, das der Route entspricht und Firewall-Anforderungen für den sicheren Zugriff auf Google APIs und andere Ressourcen.

Anforderungen an Routen

Der Dataproc-Agent, der auf Cluster-VMs ausgeführt wird, benötigt eine Route zum Internet, um auf die Dataproc Control API zuzugreifen und Jobs und den Berichtsstatus abzurufen. VPC-Netzwerke enthalten beim Erstellen eine vom System generierte Standardroute zum Internet. Es wird nicht empfohlen, die Standardroute zum Internet zu löschen. verwenden Sie stattdessen Firewalls zur Steuerung des Netzwerkzugriffs. Beachten Sie, dass reine interne IP-Cluster ebenfalls Diese Standardroute zum Internet für den Zugriff auf Dataproc Control APIs voraussetzen und andere Google-Dienste wie Cloud Storage nutzen, deren Traffic die Google-Rechenzentren verlassen.

Firewallanforderungen

Die VMs (virtuellen Maschinen) des Dataproc-Clusters müssen über ICMP-, TCP- (alle Ports) und UDP-Protokolle (alle Ports) miteinander kommunizieren können.

Das VPC-Netzwerk default default-allow-internal-Firewall Regel erfüllt die Anforderungen an die Verbindungsanforderungen von Dataproc-Clustern und lässt eingehenden Traffic aus dem Quellbereich 10.128.0.0/9 von alle VMs im VPC-Netzwerk so:

Regel Netzwerk Richtung Priorität Quellbereich Protokolle:Ports
default-allow-internal default Eingehend 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp
  • Wenn Sie die Firewallregel default-allow-internal löschen, wird eingehender Traffic auf Das Netzwerk default wird blockiert durch den implizierte Regel zum Ablehnen von eingehendem Traffic.

  • Wenn Sie die Firewallregel default-allow-internal löschen oder das VPC-Netzwerk default nicht verwenden, müssen Sie eine eigene Regel erstellen, die Dataproc-Konnektivitätsanforderungen erfüllt, das VPC-Netzwerk Ihres Clusters.

Best Practice: Firewallregel für eingehenden Traffic erstellen für Ihr Cluster-VPC-Netzwerk, das eingehende Verbindungen nur zwischen indem Sie einen Quell-IP-Bereich verwenden oder Cluster-VMs anhand Netzwerk-Tag oder Dienstkonto.

Firewallregel für eingehenden Traffic erstellen

Wenn Sie oder Ihr Netzwerk- oder Sicherheitsadministrator Firewallregel für eingehenden Traffic auf das VPC-Netzwerk eines Dataproc-Clusters angewendet werden soll, die folgenden Merkmale:

  • Der Parameter sources gibt an, die Quellen für Pakete. Alle Dataproc-Cluster-VMs miteinander kommunizieren können. Sie können die VMs in der Cluster nach IP-Adressbereich, Quelltags oder Dienstkonten, die mit die VMs erstellen.

  • Das Ziel für die Regel muss Folgendes identifizieren: die Cluster-VMs. Das Ziel können alle VMs im VPC-Netzwerk sein oder Sie können VMs nach IP-Adressbereich, Zieltag oder Zieldienst identifizieren Konto.

  • Die Regel muss die folgenden Protokolle und Ports enthalten:

    • TCP (alle Ports, 0 bis 65535)
    • UDP (alle Ports, 0 bis 65535)
    • ICMP

    Dataproc verwendet Dienste, die auf mehreren Ports ausgeführt werden. Wenn Sie alle Ports angeben, werden die Dienste erfolgreich ausgeführt.

VPC-Firewallregeln diagnostizieren

Für Pakete, die nicht von Firewallregeln mit höherer Priorität verarbeitet werden, können Sie zwei Firewallregeln mit niedriger Priorität (65534) ablehnen. Im Gegensatz zu den implizierten Firewallregeln können Sie das Logging von Firewallregeln für jede dieser Regeln mit niedriger Priorität aktivieren:

  1. Eine Regel zum Ablehnen von eingehendem Traffic (Quellen 0.0.0.0/0, alle Protokolle, alle Ziele im VPC-Netzwerk)

  2. Regel für Ablehnen von ausgehenden Traffic (Ziele 0.0.0.0/0, alle Protokolle, alle Ziele im VPC-Netzwerk)

  • Mit diesen Regeln mit niedriger Priorität und dem Logging von Firewallregeln können Sie Pakete, die nicht mit höherer Priorität und möglicherweise spezifischer werden, Firewallregeln. Diese beiden Regeln mit niedriger Priorität entsprechen auch den Best Practices für die Sicherheit, indem sie eine Strategie für das endgültige Verwerfen von Paketen implementieren.

  • Prüfen Sie die Firewallregel-Logs für diese Regeln, um festzustellen, ob Sie Regeln mit höherer Priorität erstellen oder ändern müssen, um Pakete zuzulassen. Wenn z. B. Pakete, die zwischen einem Dataproc-Cluster VMs werden verworfen. Dies kann ein Zeichen dafür sein, dass Ihre Firewallregeln angepasst werden.

VPC-Netzwerk erstellen

Anstatt das VPC-Netzwerk default zu verwenden, können Sie Ihr eigenes erstellen automatischer Modus oder benutzerdefinierte VPC Netzwerk. Beim Erstellen des Clusters verknüpfen Sie Ihr Netzwerk mit dem Cluster.

Assured Workloads-Umgebung: Wenn Sie zur Einhaltung gesetzlicher Vorschriften eine Assured Workloads-Umgebung verwenden, müssen sich der Cluster, sein VPC-Netzwerk und seine Cloud Storage-Buckets in der Assured Workloads-Umgebung befinden.

Cluster erstellen, der Ihr VPC-Netzwerk verwendet

Google Cloud CLI

Verwenden Sie gcloud dataproc clusters create mit ‑‑network oder ‑‑subnet Flag, um einen Cluster in einem Subnetz Ihres Netzwerks zu erstellen. Wenn Sie das Flag ‐‐network verwenden, verwendet der Cluster ein Subnetzwerk mit denselben Namen wie das angegebene Netzwerk in der Region, in der der Cluster erstellt wird.

--network example Da automatische Netzwerke Mit Subnetzen in jeder Region, wobei jedes Subnetz den Netzwerknamen hat, können Sie den Namen des VPC-Netzwerk im automatischen Modus an das Flag ‑‑network. Der Cluster verwendet das VPC-Subnetzwerk im automatischen Modus im Region, die mit dem Flag ‐‐region angegeben ist.

gcloud dataproc clusters create CLUSTER_NAME \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

--subnet example Sie können die ‑‑subnet Flag zum Erstellen eines Clusters, der einen automatischen Modus oder ein benutzerdefiniertes VPC-Netzwerksubnetz in der Clusterregion. Geben Sie den vollständigen Ressourcenpfad des Subnetzes an.

gcloud dataproc clusters create CLUSTER_NAMEW \
    --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
    --region=REGION \
    ... other args ...

REST API

Sie können das Feld networkUri oder subnetworkUri von GceClusterConfig im Rahmen einer clusters.create-Anfrage angeben.

Beispiel

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "PROJECT_ID",
  "clusterName": CLUSTER_NAME,
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": SUBNET_NAME,
    },
    ...

Console

Wählen Sie Ihr Netzwerk im Netzwerk aus. im Bereich Cluster anpassen. Nachdem Sie die zeigt die Auswahl Subnetzwerk die im Region, die Sie für den Cluster ausgewählt haben.

Cluster erstellen, der ein VPC-Netzwerk in einem anderen Projekt verwendet

Ein Dataproc-Cluster kann Folgendes verwenden: freigegebenes VPC-Netzwerk, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, Dies wird als Dienstprojekt bezeichnet.

  1. Ermitteln Sie die Projektnummer des Dataproc-Clusters:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung Einstellungen. Wählen Sie das Projekt aus, in dem Sie die Dataproc-Cluster Kopieren Sie die Projekt-ID.
  2. Ein Hauptkonto mit der Rolle "Administrator für freigegebene VPC" muss die folgenden Schritte ausführen. Weitere Informationen finden Sie in der Anleitung unter Freigegebene VPC einrichten.

    1. Prüfen Sie, ob das freigegebene VPC-Hostprojekt aktiviert ist.

    2. Verknüpfen Sie das Projekt mit dem Dataproc-Cluster mit dem Hostprojekt.

    3. Folgen Sie der Anleitung in diesem untergeordneten Schritt, um Folgendes zu konfigurieren: Dienstkonten mit der Rolle Network User Rolle für das Hostprojekt:

      1. Öffnen Sie das IAM & Administrator in der Google Cloud Console.

      2. Verwenden Sie die Projektauswahl, um das neue Hostprojekt auszuwählen.

      3. Klicken Sie auf Zugriff gewähren.

      4. Füllen Sie das Formular „Zugriff gewähren“ aus. Wiederholen Sie diese Schritte, um beide Dienstkonten hinzuzufügen:

        1. Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.

        2. Rollen zuweisen: Fügen Sie „Compute Network“ ein. Wählen Sie im Filterfeld Rolle Compute-Netzwerknutzer

        3. Klicken Sie auf Speichern.

  3. Nachdem beide Dienstkonten die Rolle Network User für das Hostprojekt haben, erstellen Sie einen Cluster, der das freigegebene VPC-Netzwerk verwendet.

Cluster erstellen, der ein VPC-Subnetzwerk in einem anderen Projekt verwendet

Ein Dataproc-Cluster kann Folgendes verwenden: freigegebenes VPC-Subnetzwerk, das in einem Hostprojekt definiert ist. Das Projekt, in dem der Dataproc-Cluster erstellt wird, Dies wird als Dienstprojekt bezeichnet.

  1. Ermitteln Sie die Projektnummer des Dataproc-Clusters:

    1. Öffnen Sie in der Google Cloud Console die Seite IAM & Verwaltung Einstellungen. Wählen Sie das Projekt aus, in dem Sie den Dataproc-Cluster erstellen möchten. Kopieren Sie die Projekt-ID.
  2. Ein Hauptkonto mit der Rolle "Administrator für freigegebene VPC" muss die folgenden Schritte ausführen. Weitere Informationen finden Sie in der Anleitung unter Freigegebene VPC einrichten.

    1. Prüfen Sie, ob das freigegebene VPC-Hostprojekt aktiviert ist.

    2. Projekt an den Dataproc-Cluster anhängen zum Hostprojekt.

    3. Folgen Sie der Anleitung in diesem Schritt, um beide der folgenden Dienstkonten so zu konfigurieren, dass sie die Rolle Netzwerknutzer für das Hostprojekt haben:

      1. Öffnen Sie die VPC-Netzwerke. in der Google Cloud Console.

      2. Verwenden Sie die Projektauswahl, um das Hostprojekt auszuwählen.

      3. Klicken Sie auf das Netzwerk, das das Subnetz enthält, das Ihr Dataproc-Cluster verwenden soll.

      4. Klicken Sie auf der Seite VPC-Netzwerkdetails auf das Kästchen neben dem Name des Subnetzwerks, das der Cluster verwenden wird.

      5. Wenn das Infofeld nicht geöffnet ist, klicken Sie auf Infofeld anzeigen.

      6. Führe für jedes Dienstkonto die folgenden Schritte aus:

        1. Klicken Sie im Infofeld auf Hauptkonto hinzufügen.

        2. Füllen Sie das Formular „Zugriff gewähren“ aus:

          1. Hauptkonten hinzufügen: Geben Sie das Dienstkonto ein.

          2. Rollen zuweisen: Fügen Sie „Compute Network“ ein. Wählen Sie im Filterfeld Rolle Compute-Netzwerknutzer

          3. Klicken Sie auf Speichern.

  3. Nachdem beide Dienstkonten die Rolle Network User für das Hostprojekt haben, erstellen Sie einen Cluster, der das freigegebene VPC-Subnetzwerk verwendet.

Dataproc-Cluster nur mit internen IP-Adressen erstellen

Sie können einen Dataproc-Cluster erstellen, der vom öffentlichen Internet isoliert ist und dessen VM-Instanzen über ein privates IP-Subnetzwerk kommunizieren. Cluster-VMs werden keine öffentlichen IP-Adressen zugewiesen. Dazu muss für das Subnetzwerk der private Google-Zugriff aktiviert sein, damit Clusterknoten über interne IP-Adressen auf Google APIs und Google-Dienste wie Cloud Storage zugreifen können.

gcloud-CLI

Sie können einen Dataproc-Cluster nur mit internen IP-Adressen erstellen mit der Methode gcloud dataproc clusters create mit dem Flag ‑‑no-address.

Verwenden Sie die Flags ‐‐no-address und ‐‐network: Verwenden Sie das Flag ‑‑no-address mit dem ‑‑network, um einen Cluster zu erstellen, der ein Subnetzwerk mit dem gleichen Namen wie das Netzwerk in der Region in dem der Cluster erstellt wird.

gcloud dataproc clusters create CLUSTER_NAME \
    --no-address \
    --network NETWORK_NAME \
    --region=REGION \
    ... other args ...

Da automatische Netzwerke z. B. mit Subnetzen in jedem mit demselben Namen wie das automatische Netzwerk hat, können Sie das automatische in ‑‑network flag ändern um einen Cluster zu erstellen, der das automatische Subnetzwerk in der Region des Clusters verwendet.

Verwenden Sie die Flags ‐‐no-address und ‐‐subnet: Verwenden Sie das Flag ‑‑no-address mit dem ‑‑subnet-Flags zum Erstellen eines Cluster, der ein automatisches oder benutzerdefiniertes Subnetzwerk in der Region verwendet in dem der Cluster erstellt wird. Übergeben Sie dem ‑‑subnet-Flag den vollständigen Ressourcenpfad des Subnetzes.

gcloud dataproc clusters create cluster-name \
    --no-address \
    --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \
    --region=region \
    ... other args ...

REST API

Du kannst die GceClusterConfig festlegen internalIpOnly auf true als Teil eines clusters.create Anfrage, nur interne IP-Adressen zu aktivieren.

Beispiel:

POST /v1/projects/my-project-id/regions/us-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "example-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "custom-subnet-1",
      "zoneUri": "us-central1-b",
      "internalIpOnly": true
    },
    ...

Console

Sie können einen Dataproc-Cluster mit privater Google-Zugriff erstellen über Dataproc aktiviert Cluster erstellen in der Google Cloud Console. Klicken Sie auf Nur interne IP das Tool Cluster anpassen um diese Funktion für Ihren Cluster zu aktivieren.

Da Cluster, die nur interne IP-Adressen haben, standardmäßig keinen Zugriff auf das Internet haben, schlagen Jobs, die Abhängigkeiten aus dem Internet herunterladen, z. B. ein Download von Spark-Abhängigkeitspaketen von Maven Central, fehl. Es gibt mehrere Problemumgehungen, um das Problem zu vermeiden:

  1. Verwenden Sie Cloud NAT, um den Clusterzugriff auf das Internet zu aktivieren.

  2. Erstellen Sie ein benutzerdefiniertes Image, das die Abhängigkeiten enthält (z. B. Spark-Abhängigkeitspakete in /usr/lib/spark/jars/).

  3. Laden Sie die Abhängigkeiten in einen Cloud Storage-Bucket hoch und verwenden Sie dann eine Initialisierungsaktion, um die Abhängigkeiten während der Clustererstellung aus dem Bucket herunterzuladen.

Dataproc- und VPC Service Controls-Netzwerke

Mit VPC Service Controls können Administratoren einen Sicherheitsbereich für Ressourcen aus von Google verwalteten Diensten festlegen, um die Kommunikation mit und zwischen diesen Diensten zu steuern.

Beachten Sie die folgenden Einschränkungen und Strategien, wenn Sie VPC Service Controls-Netzwerke mit Dataproc-Cluster: