Netzwerke/Best Practices

In diesem Dokument werden Best Practices für die Erstellung einer sicheren und ausfallsicheren Netzwerkumgebung für AI Hypercomputer-Arbeitslasten beschrieben. Diese Empfehlungen richten sich an Netzwerkarchitekten, Netzwerktechniker und Entwickler, die Arbeitslasten im Bereich künstliche Intelligenz (KI) und maschinelles Lernen (ML) auf AI Hypercomputer konfigurieren und bereitstellen möchten.

Klare und eingeschränkte IAM-Rollen einrichten

Die korrekte Konfiguration von IAM trägt dazu bei, die Sicherheit und den Erfolg Ihrer AI Hypercomputer-Bereitstellungen zu verbessern. In Produktionsumgebungen können unzureichende oder falsch konfigurierte Berechtigungen zu Bereitstellungsfehlern führen. AI Hypercomputer-Bereitstellungen, insbesondere solche, die das Cluster Toolkit verwenden, schlagen häufig in Umgebungen mit erhöhten Sicherheitsanforderungen fehl, in denen das Compute Engine Standarddienstkonto nicht die umfassende Rolle Editor hat.

Um Bereitstellungsprobleme zu vermeiden, die aufgrund von Berechtigungsproblemen auftreten können, folgen Sie den Best Practices in diesem Abschnitt.

Eigene Dienstkonten verwenden

Verwenden Sie aus Sicherheitsgründen nicht das Compute Engine-Standarddienstkonto. Erstellen Sie stattdessen ein eigenes Dienstkonto für Ihre AI Hypercomputer-Bereitstellung.

Sie können Managed Workload Identity verwenden, um Arbeitslasten zu authentifizieren und zu autorisieren, anstatt Dienstkonto-Tokens zu verwenden. Weitere Informationen finden Sie unter Arbeitslasten mit mTLS authentifizieren für Compute Engine oder Workload Identity für GKE.

Erforderliche IAM-Rollen zuweisen

Weisen Sie dem von Ihnen erstellten dedizierten Dienstkonto die folgenden IAM-Rollen zu:

  • Compute-Administrator (roles/compute.admin): Bietet vollständige Kontrolle über Compute Engine-Ressourcen.
  • Dienstkontonutzer (roles/iam.serviceAccountUser): Ermöglicht, dass das Dienstkonto an andere Ressourcen angehängt wird. Dies ist für Tools wie Packer beim Erstellen benutzerdefinierter Images unerlässlich.
  • Storage-Administrator (roles/storage.admin): Erfordert Zugriff auf und Verwaltung von Cloud Storage-Buckets, z. B. zum Speichern von Packer-Images oder anderen Artefakten.
  • Logging-Administrator (roles/logging.admin): Ermöglicht dem Dienstkonto, die Protokollierung zu konfigurieren und Logs anzusehen. Dies ist für das Debugging unerlässlich.

Berechtigungen vor der Bereitstellung prüfen

Prüfen Sie vor Beginn einer Bereitstellung, ob Ihr Dienstkonto die erforderlichen Berechtigungen hat. Führen Sie den gcloud projects get-iam-policy Befehl aus:

gcloud projects get-iam-policy PROJECT_ID \
    --flatten="bindings[].members" \ format='table(bindings.role)' \
    --filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID Ihres Google Cloud Projekts.
  • SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos, das Sie prüfen möchten.

Mit diesem Befehl werden alle Rollen aufgelistet, die Ihrem Dienstkonto im angegebenen Projekt zugewiesen sind. Prüfen Sie, ob die unter Erforderliche IAM-Rollen zuweisen aufgeführten Rollen in der Ausgabe angezeigt werden.

Öffentlichen Netzwerkzugriff einschränken und Firewallkonfigurationen härten

Schränken Sie den öffentlichen Netzwerkzugriff ein und härten Sie die Firewallkonfigurationen, um die Sicherheit zu verbessern. Diese grundlegende Sicherheitspraktik mindert das Risiko von Standardfirewallregeln, die übermäßige Berechtigungen gewähren.

In Produktionsumgebungen können Fehler bei der Einrichtung virtueller Maschinen (VMs) auftreten, die auf restriktive Firewallkonfigurationen zurückzuführen sind, die bei internen Tests nicht vorhanden waren. Techniker haben möglicherweise Schwierigkeiten, diese Fehler ohne Kenntnis bestimmter Firewallregeln zu diagnostizieren.

Überprüfen und aktualisieren Sie Ihre Firewallregeln, um Gefahren durch direkte Verbindungen zum Internet einzudämmen. Weitere Informationen zu VPC-Firewallregeln finden Sie unter VPC-Firewallregeln.

Interne Netzwerkeinstellungen standardisieren

Standardisieren Sie die internen Netzwerkeinstellungen, um Risiken und Konfigurationsherausforderungen zu reduzieren. Standardmäßiges Netzwerkverhalten kann in komplexen oder sicherheitsgehärteten Umgebungen Risiken oder Konfigurationsherausforderungen verursachen. Google empfiehlt die folgenden Konfigurationen:

  • Zonales DNS verwenden:Legen Sie für neue Projekte das interne Domain Name System (DNS) so fest, dass nur zonales DNS verwendet wird. Dieser Ansatz trägt dazu bei, die Auswirkungen eines potenziellen weltweiten DNS-Ausfalls zu reduzieren. Weitere Informationen zur Verwendung von zonalem DNS finden Sie unter Übersicht zur Verwendung von zonalem DNS.
  • Externe IP-Adressen deaktivieren:Deaktivieren Sie nach Möglichkeit externe IP-Adressen. Bevor Sie die IP-Adressen deaktivieren, müssen Sie sorgfältig planen und in einer Staging-Umgebung testen, da einige Dienste wie verwaltete Instanzgruppen (Managed Instance Groups, MIGs) oder GKE-Cluster mit öffentlichen Knoten darauf angewiesen sind. Weitere Informationen zum Einschränken öffentlicher IP-Adressen finden Sie unter Öffentliche IP Adressen in Google Cloud einschränken.

Netzwerk nach Infrastruktur optimieren

Die Best Practices für das Netzwerk für Ihre Bereitstellung variieren je nach Ihrer Wahl der Infrastruktur: allgemeine GPUs oder Cluster-GPUs.

Best Practices für allgemeine GPUs

Wenn Sie allgemeine GPUs verwenden, beachten Sie die folgenden Best Practices für das Netzwerk:

  • Kompakte Platzierungsrichtlinien verwenden: Wenn für Ihre allgemeinen GPU Instanzen keine physicalHost ID gemeldet wird, verwenden Sie kompakte Platzierungsrichtlinien , um Instanzgruppierungen zu identifizieren und die Leistung für diese Ressourcen zu optimieren. Weitere Informationen finden Sie unter Instanzplatzierung definieren.
  • Google Virtual NIC (gVNIC) für die Hostkommunikation verwenden: Verwenden Sie für eine konsistente Leistung für die gesamte Host-zu-Host Kommunikation standardmäßiges TCP/IP über gVNIC. Weitere Informationen zu gVNIC finden Sie unter Google Virtual NIC verwenden.
  • Mit einer Architektur mit einer einzelnen VPC vereinfachen: Sofern die Isolations anforderungen nichts anderes vorschreiben, verwenden Sie für die gesamte Kommunikation ein standardmäßiges VPC- Netzwerk. Diese Empfehlung für eine einzelne VPC gilt für die Serien G2, G4, A2 und N1. A3 Edge ist eine Ausnahme, für die vier Daten-VPCs und GPUDirect-TCPX erforderlich sind. Weitere Informationen finden Sie unter GPU-Netzwerkbandbreite in Clustern im Standardmodus maximieren.

Best Practices für Cluster-GPUs

Wenn Sie Cluster-GPUs verwenden, beachten Sie die folgenden Best Practices für das Netzwerk:

  • Multi-VPC-Umgebung implementieren: So wird sichergestellt, dass der GPU-zu-GPU- Traffic auf dedizierte VPCs mit hoher Bandbreite isoliert wird, damit Host- oder Speichertraffic nicht um Bandbreite konkurrieren. Weitere Informationen finden Sie unter Multi-VPC Umgebung.
  • Für RDMA optimierte Netzwerkprofile anwenden: Verwenden Sie von Google verwaltete Netzwerk profile, um Ihre VPC automatisch für die niedrige Latenz zu konfigurieren, die für RDMA over Converged Ethernet (RoCE) erforderlich ist. Weitere Informationen finden Sie unter Netzwerkprofile für bestimmte Anwendungsfälle.
  • Infrastrukturaufgaben auslagern: Verwenden Sie benutzerdefinierte Titanium-NICs, um Aufgaben wie die Verarbeitung von Netzwerkpaketen und die Virtualisierung für den Speicher auszulagern und so CPU-Zyklen für Ihre KI-Anwendung zu reservieren.

Zusammenfassung der Best Practices

In der folgenden Tabelle sind die Best Practices zusammengefasst, die in diesem Dokument empfohlen werden:

Thema Aufgabe
IAM Klare und eingeschränkte IAM-Rollen einrichten
Firewall Öffentlichen Netzwerkzugriff einschränken und Firewallkonfigurationen härten
Netzwerkstandardeinstellungen Interne Netzwerkeinstellungen standardisieren
Infrastruktur Netzwerk nach Infrastruktur optimieren

Nächste Schritte