Das VPC-Subnetzwerk, das zum Ausführen von Dataproc Serverless for Spark-Arbeitslasten verwendet wird, muss die folgenden Anforderungen erfüllen:
Offene Subnetzverbindung: Das Subnetz muss die Subnetzkommunikation an allen Ports zulassen. Mit dem folgenden gcloud-Befehl wird eine Netzwerkfirewall an ein Subnetz angehängt, das eingehende Kommunikation über alle Protokolle an allen Ports zulässt:
gcloud compute firewall-rules create allow-internal-ingress \ --network=network-name \ --source-ranges=SUBNET_RANGES \ --direction=ingress \ --action=allow \ --rules=all
- SUBNET_RANGES: Weitere Informationen finden Sie unter Interne eingehende Verbindungen zwischen VMs zulassen.
Das VPC-Netzwerk
default
in einem Projekt mit der Firewallregeldefault-allow-internal
, die eingehende Kommunikation an allen Ports zulässt (tcp:0-65535, udp:0-65535 und icmp-Protokolle:ports), erfüllt die Anforderung an die Open-Subnetz-Konnektivität. Es lässt jedoch auch eingehenden Traffic von jeder VM-Instanz im Netzwerk zu.
- SUBNET_RANGES: Weitere Informationen finden Sie unter Interne eingehende Verbindungen zwischen VMs zulassen.
Das VPC-Netzwerk
Privater Google-Zugriff:Für das Subnetz muss der private Google-Zugriff aktiviert sein.
- Externer Netzwerkzugriff. Wenn Ihre Arbeitslast Zugriff auf ein externes Netzwerk oder Internet erfordert, können Sie Cloud NAT einrichten, um ausgehenden Traffic über interne IP-Adressen in Ihrem VPC-Netzwerk zuzulassen.
Serverlose Dataproc-Netzwerke und VPC-SC-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-SC-Netzwerke mit Dataproc Serverless verwenden:
Wenn Sie Abhängigkeiten außerhalb des VPC-SC-Perimeters installieren möchten, erstellen Sie ein benutzerdefiniertes Container-Image, das die Abhängigkeiten vorinstalliert. Senden Sie dann eine Spark-Batcharbeitslast, die Ihr benutzerdefiniertes Container-Image verwendet.