In diesem Dokument finden Sie Referenzarchitekturen, die zeigen, wie Sie Cloud Storage FUSE verwenden können, um die Leistung für KI- und ML-Arbeitslasten in Google Kubernetes Engine (GKE) zu optimieren.
Dieses Dokument richtet sich an Architekten und technische Fachkräfte, die Speicher für ihre KI- und ML-Arbeitslasten auf Google Cloudentwerfen, bereitstellen und verwalten. In diesem Dokument wird davon ausgegangen, dass Sie mit dem ML-Lebenszyklus, den Prozessen und den Funktionen vertraut sind.
Cloud Storage FUSE ist ein Open-Source-FUSE-Adapter, mit dem Sie Cloud Storage-Buckets als lokale Dateisysteme bereitstellen können. Diese Konfiguration ermöglicht es Anwendungen, nahtlos mit cloudbasierten Speicher-Buckets zu interagieren, indem sie die Standardsemantik des Dateisystems verwenden. Mit Cloud Storage FUSE können Sie die Skalierbarkeit und Kosteneffizienz von Cloud Storage nutzen.
Architektur
Je nach Ihren Anforderungen an Leistung, Verfügbarkeit und Notfallwiederherstellung (Disaster Recovery, DR) können Sie einen der folgenden Google Cloud Bereitstellungsarchetypen auswählen, um Ihre KI- und ML-Arbeitslasten auf Google Cloudauszuführen:
- Regional: Ihre Anwendungen werden unabhängig in einer einzelnenGoogle Cloud-Region ausgeführt. Wir empfehlen diesen Bereitstellungs-Archetyp für Anwendungen, die nicht geschäftskritisch sind, aber gegen Zonenausfälle geschützt sein müssen.
- Multiregional: Ihre Anwendungen werden unabhängig voneinander in zwei oder mehr Google Cloud Regionen im Aktiv-Aktiv- oder Aktiv-Passiv-Modus ausgeführt. Dieser Bereitstellungsarchetyp eignet sich ideal für DR-Szenarien. Wir empfehlen diesen Bereitstellungs-Archetyp für unternehmenskritische Anwendungen, die vor regionalen Ausfällen und Katastrophen geschützt sein müssen. Bereitstellungen in zwei oder mehreren Regionen können die Latenz reduzieren und den Durchsatz durch eine größere Nähe der Ressourcen verbessern.
Der von Ihnen ausgewählte Bereitstellungsarchetyp gibt Aufschluss über die Google Cloud Produkte und ‑Funktionen, die Sie für Ihre Architektur benötigen. Bei der multiregionalen Architektur wird Anywhere Cache verwendet, um die Netzwerkbandbreite zu erhöhen und im Vergleich zu einem regionalen Bucket eine geringere Latenz bei zonalen Cache-Treffern zu erzielen. Anywhere Cache wird im Allgemeinen für alle Arbeitslasten empfohlen und macht bei Verwendung mit multiregionalen Buckets Gebühren für die Datenübertragung überflüssig. Um zu prüfen, ob Anywhere Cache für Ihre Arbeitslast geeignet ist, können Sie mit dem Anywhere Cache Recommender Ihre Datennutzung und Ihren Speicher analysieren.
Auf den folgenden Tabs finden Sie Referenzarchitekturen für die Archetypen für regionale und multiregionale Bereitstellungen:
Regional
Das folgende Diagramm zeigt eine regionale Beispielarchitektur, in der Cloud Storage FUSE verwendet wird, um die Leistung der Workflows für das Trainieren und Bereitstellen von Modellen zu optimieren:
Diese Architektur umfasst die folgenden Komponenten:
- GKE-Cluster: GKE verwaltet die Rechenknoten, auf denen Ihre KI- und ML-Modelltrainings- und ‑bereitstellungsprozesse ausgeführt werden. GKE verwaltet die zugrunde liegende Infrastruktur der Kubernetes-Cluster, einschließlich der Steuerungsebene, Knoten und aller Systemkomponenten.
- Kubernetes-Scheduler: Die GKE-Steuerungsebene plant Arbeitslasten und verwaltet ihren Lebenszyklus, ihre Skalierung und ihre Upgrades. Der Kubernetes-Knoten-Agent (
kubelet
), der im Diagramm nicht dargestellt ist, kommuniziert mit der Steuerungsebene. Derkubelet
-Agent ist für das Starten und Ausführen von Containern verantwortlich, die auf den GKE-Knoten geplant sind. Weitere Informationen zum Scheduler finden Sie unter KI‑/ML-Orchestrierung in GKE. - VPC-Netzwerk (Virtual Private Cloud): Alle Google Cloud-Ressourcen in der Architektur verwenden ein einzelnes VPC-Netzwerk. Je nach Ihren Anforderungen können Sie eine Architektur erstellen, die mehrere Netzwerke verwendet. Weitere Informationen zum Konfigurieren eines VPC-Netzwerks für Cloud Storage FUSE finden Sie unter Entscheiden, ob mehrere VPC-Netzwerke erstellt werden sollen.
- Cloud Load Balancing: In dieser Architektur verteilt Cloud Load Balancing eingehende Inferenzanfragen von Anwendungsnutzern effizient an die Serving-Container im GKE-Cluster. Weitere Informationen finden Sie unter GKE-Load-Balancing.
- Graphics Processing Unit (GPU) oder Tensor Processing Units (TPUs): GPUs und TPUs sind spezielle Maschinenbeschleuniger, die die Leistung Ihrer KI- und ML-Arbeitslasten verbessern. Informationen zur Auswahl eines geeigneten Prozessortyps finden Sie weiter unten in diesem Dokument unter Beschleunigeroptionen.
- Cloud Storage: Cloud Storage bietet persistenten, skalierbaren und kostengünstigen Speicher für Ihre KI- und ML-Arbeitslasten. Cloud Storage dient als zentrales Repository für Ihre Rohdaten-Trainingsdatasets, Modell-Checkpoints und endgültigen trainierten Modelle.
- Cloud Storage FUSE mit aktiviertem Dateicache: Mit Cloud Storage FUSE können Sie einen Cloud Storage-Bucket als lokales Dateisystem bereitstellen. Der Datei-Cache in Cloud Storage FUSE ist ein Verzeichnis auf dem lokalen Computer, in dem häufig aufgerufene Dateien aus Ihren Cloud Storage-Buckets gespeichert werden. Der Cloud Storage FUSE-CSI-Treiber verwaltet die Einbindung von Cloud Storage FUSE in die Kubernetes API, um Cloud Storage-Buckets als Volumes zu nutzen.
In den folgenden Abschnitten wird der Workflow in den Trainings- und Bereitstellungsarbeitslasten der Architektur beschrieben.
Multiregional
Das folgende Diagramm zeigt eine Beispielarchitektur mit mehreren Regionen, in der Cloud Storage FUSE und Anywhere Cache verwendet werden, um die Leistung der Workflows für das Modelltraining und die Modellbereitstellung zu optimieren:
Diese Architektur umfasst die folgenden Komponenten:
- GKE-Cluster: GKE verwaltet die Rechenknoten, auf denen Ihre KI- und ML-Modelltrainings- und Bereitstellungsprozesse ausgeführt werden. GKE verwaltet die zugrunde liegende Infrastruktur der Kubernetes-Cluster, einschließlich der Steuerungsebene, Knoten und aller Systemkomponenten.
- Kubernetes-Scheduler: Die GKE-Steuerungsebene plant Arbeitslasten und verwaltet ihren Lebenszyklus, ihre Skalierung und ihre Upgrades. Der Kubernetes-Knoten-Agent (
kubelet
), der im Diagramm nicht dargestellt ist, kommuniziert mit der Steuerungsebene. Derkubelet
-Agent ist für das Starten und Ausführen von Containern verantwortlich, die auf den GKE-Knoten geplant sind. Weitere Informationen zum Scheduler finden Sie unter KI‑/ML-Orchestrierung in GKE. - VPC-Netzwerk (Virtual Private Cloud): Alle Google Cloud-Ressourcen in der Architektur verwenden ein einzelnes VPC-Netzwerk. Je nach Ihren Anforderungen können Sie eine Architektur erstellen, die mehrere Netzwerke verwendet. Weitere Informationen zum Konfigurieren eines VPC-Netzwerks für Cloud Storage FUSE finden Sie unter Entscheiden, ob mehrere VPC-Netzwerke erstellt werden sollen.
- Cloud DNS: In multiregionalen Architekturen leitet Cloud DNS den Traffic an die Load-Balancer weiter, um durch Anycast-Routing für optimale Leistung und Verfügbarkeit zu sorgen. Anfragen werden automatisch an den nächsten Standort weitergeleitet, wodurch sich die Latenz verkürzt und die Leistung bei der Suche des autoritativen Namens für Ihre Nutzer verbessert wird. Informationen zu allgemeinen Grundsätzen und Best Practices finden Sie unter Best Practices für Cloud DNS.
- Cloud Load Balancing: In dieser Architektur verteilt Cloud Load Balancing eingehende Anfragen von Anwendungsnutzern effizient auf die Serving-Container im GKE-Cluster. Weitere Informationen finden Sie unter GKE-Load-Balancing.
- Graphics Processing Unit (GPU) oder Tensor Processing Units (TPUs): GPUs und TPUs sind spezielle Maschinenbeschleuniger, die die Leistung Ihrer KI- und ML-Arbeitslasten verbessern. Informationen zur Auswahl eines geeigneten Prozessortyps finden Sie weiter unten in diesem Dokument unter Beschleunigeroptionen.
- Cloud Storage: Cloud Storage bietet persistenten, skalierbaren und kostengünstigen Speicher für Ihre KI- und ML-Arbeitslasten. Cloud Storage dient als zentrales Repository für Ihre Rohdaten-Trainingsdatasets, Modell-Checkpoints und endgültigen trainierten Modelle.
- Cloud Storage FUSE: Mit Cloud Storage FUSE können Sie einen Cloud Storage-Bucket als lokales Dateisystem bereitstellen. Der Cloud Storage FUSE CSI-Treiber, der nicht im Diagramm dargestellt ist, verwaltet die Einbindung von Cloud Storage FUSE in die Kubernetes API, um Cloud Storage-Buckets als Volumes zu nutzen.
- Anywhere Cache: Anywhere Cache ist eine Funktion von Cloud Storage, die bis zu 1 PiB zonenbasierten schreibgeschützten SSD-Cache für Cloud Storage-Buckets bietet. Während des Trainings und der Bereitstellung können Sie mit Anywhere Cache die Leselatenzen reduzieren und einen Durchsatz von mehr als 2 TB/s erreichen, indem Sie die Cachekapazität und ‑bandbreite skalieren. In Kombination mit multiregionalen Buckets kann Anywhere Cache in mehreren Zonen und Regionen verwendet werden. Informationen zu unterstützten Regionen und Zonen finden Sie unter Unterstützte Standorte.
In den folgenden Abschnitten wird der Workflow in den Trainings- und Bereitstellungsarbeitslasten der Architektur beschrieben.
Trainingsbelastung
In den vorherigen Architekturen sind die Schritte im Datenfluss während des Modelltrainings die folgenden:
- Trainingsdaten in Cloud Storage laden: Trainingsdaten werden in einen Cloud Storage-Bucket mit aktivierten hierarchischen Namespaces hochgeladen. Cloud Storage dient als skalierbares zentrales Repository.
- Trainingsdaten in GKE laden und Trainingsjobs ausführen: Mit dem Cloud Storage-Bucket, der in Ihre GKE-Pods eingebunden ist, können Ihre Trainingsanwendungen die Trainingsdaten effizient über die FUSE-Schnittstelle laden und darauf zugreifen. Auf den GKE-Knoten wird das Modelltraining mit dem eingebundenen Dateicache als Datenquelle ausgeführt. Ihre Trainingsanwendungen stellen den Maschinenbeschleunigern kontinuierlich Trainingsdaten zur Verfügung, damit die komplexen Berechnungen durchgeführt werden können, die für das Modelltraining erforderlich sind. Je nach den Anforderungen Ihrer Arbeitslast können Sie GPUs oder TPUs verwenden. Informationen zur Auswahl eines geeigneten Prozessortyps finden Sie weiter unten in diesem Dokument unter Beschleunigeroptionen.
Checkpoint- und Modellspeicherung und ‑wiederherstellung:
- Prüfpunkte oder Modell speichern: Während des Trainings werden Prüfpunkte in regelmäßigen Abständen asynchron in einem separaten Cloud Storage-Bucket gespeichert. Die Prüfpunkte erfassen den Status des Modells basierend auf von Ihnen definierten Messwerten oder Intervallen.
- Prüfpunkte oder Modell wiederherstellen: Wenn für Ihren Trainings-Workload ein Prüfpunkt oder Modelldaten wiederhergestellt werden müssen, müssen Sie das Asset, das Sie wiederherstellen möchten, in Cloud Storage suchen. Sie können den wiederhergestellten Prüfpunkt oder das wiederhergestellte Modell verwenden, um das Training fortzusetzen, Parameter abzustimmen oder die Leistung anhand eines Validierungssatzes zu bewerten.
Bereitstellungsarbeitslast
In den vorherigen Architekturen sind die Schritte im Datenfluss während des Bereitstellens von Modellen die folgenden:
- Modell laden: Nach Abschluss des Trainings laden Ihre Pods das trainierte Modell mit Cloud Storage FUSE, wobei parallele Downloads aktiviert sind. Parallele Downloads beschleunigen das Laden von Modellen, indem die Teile des Modells parallel aus Cloud Storage abgerufen werden. Um die Ladezeiten von Modellen erheblich zu verkürzen, wird das Cache-Verzeichnis als Prefetch-Puffer verwendet.
- Inferenzanfrage: Anwendungsnutzer senden Inferenzanfragen über den Cloud Load Balancing-Dienst von der KI- und ML-Anwendung aus. Cloud Load Balancing verteilt die eingehenden Anfragen auf die Serving-Container im GKE-Cluster. Diese Verteilung sorgt dafür, dass kein einzelner Container überlastet wird und Anfragen effizient verarbeitet werden.
- Antwortübermittlung: Die Knoten verarbeiten die Anfrage und generieren eine Vorhersage. Die Bereitstellungscontainer senden die Antworten über Cloud Load Balancing zurück an die Anwendungsnutzer.
Verwendete Produkte
In den Referenzarchitekturen werden die folgenden Google Cloud Produkte verwendet:
- Google Kubernetes Engine (GKE): Ein Kubernetes-Dienst, mit dem Sie Containeranwendungen in großem Maßstab mithilfe der Infrastruktur von Google bereitstellen und betreiben können.
- Cloud Storage: Ein kostengünstiger, unbegrenzter Objektspeicher für verschiedene Datentypen. Auf Daten kann von innerhalb und außerhalb von Google Cloudzugegriffen werden. Sie werden zu Redundanzzwecken über Standorte hinweg repliziert.
- Virtual Private Cloud (VPC): Ein virtuelles System, das globale, skalierbare Netzwerkfunktionen für Ihre Google Cloud Arbeitslasten bietet. VPC umfasst VPC-Netzwerk-Peering, Private Service Connect, Zugriff auf private Dienste und freigegebene VPC.
- Cloud Load Balancing: Ein Portfolio von leistungsstarken, skalierbaren, globalen und regionalen Load-Balancern
- Cloud DNS: Ein Dienst, der stabile DNS-Bereitstellung mit niedriger Latenz über das weltweite Google-Netzwerk bietet.
Anwendungsfall
Für KI- und ML-Arbeitslasten, die eine große Speicherkapazität und einen leistungsstarken Dateizugriff erfordern, empfehlen wir eine Architektur, die auf Cloud Storage FUSE basiert. Mit der richtigen Planung können Sie mit diesen Architekturen einen Durchsatz von über 1 TB/s erreichen. Außerdem können Sie mit Cloud Storage FUSE ein zentrales Speicher-Repository nutzen, das als Single Source of Truth für alle Phasen des KI- und ML-Workflows dient. Dieser Ansatz kann für alle Arbeitslasten verwendet werden, unabhängig von ihrer Größe oder ihrem Umfang.
Für diese Arbeitslasten bietet Cloud Storage FUSE die folgenden Vorteile:
- Vereinfachter Datenzugriff: Greifen Sie mit KI- und ML-Frameworks wie Connector for PyTorch, JAX und TensorFlow auf Trainingsdaten und Prüfpunkte zu. Der Zugriff auf Daten über KI- und ML-Frameworks macht eine Code-Refaktorierung überflüssig.
- Schnellerer Start: Mit Cloud Storage FUSE können Sie direkt auf Daten in Cloud Storage zugreifen. So müssen Sie keine großen Datasets auf Rechenressourcen herunterladen. Dieser direkte Zugriff auf Daten führt zu kürzeren Job-Startzeiten.
- Kosteneffizienz: Optimieren Sie die Kosten, indem Sie die inhärente Skalierbarkeit und Kosteneffizienz von Cloud Storage nutzen.
Cloud Storage FUSE ist nicht für latenzempfindliche Arbeitslasten geeignet, die Dateien mit einer Größe von weniger als 50 MB enthalten oder die eine Latenz von weniger als 1 Millisekunde für zufällige E/A und Metadatenzugriff erfordern.
Für datenintensive Trainings- oder Checkpoint- und Neustart-Arbeitslasten sollten Sie während der E/A-intensiven Trainingsphase eine Speicheralternative in Betracht ziehen.
Designalternativen
In den folgenden Abschnitten werden alternative Designansätze vorgestellt, die Sie für Ihre KI- und ML-Anwendung in Google Cloudin Betracht ziehen können.
Plattformalternative
Anstatt Ihren Workflow für das Modelltraining und die Bereitstellung in GKE zu hosten, können Sie Compute Engine mit Slurm verwenden. Slurm ist ein hochgradig konfigurierbarer Open-Source-Workload- und Ressourcenmanager. Die Verwendung von Compute Engine mit Slurm eignet sich besonders gut für das Training von Modellen und Simulationen im großen Maßstab. Wir empfehlen die Verwendung von Compute Engine mit Slurm, wenn Sie proprietäre KI- und ML-IP in eine skalierbare Umgebung mit der Flexibilität und Kontrolle integrieren müssen, um die Leistung für spezielle Arbeitslasten zu optimieren. Weitere Informationen zur Verwendung von Compute Engine mit Slurm finden Sie unter HPC-Cluster mit Slurm bereitstellen.
In Compute Engine stellen Sie Ihre virtuellen Maschinen (VMs) bereit und verwalten sie. So haben Sie detaillierte Kontrolle über Instanztypen, Speicher und Netzwerk. Sie können Ihre Infrastruktur genau an Ihre Anforderungen anpassen, einschließlich der Auswahl bestimmter VM-Maschinentypen. Informationen zur Verwendung der Cloud Storage FUSE-Befehlszeilenoptionen in Compute Engine finden Sie unter gcsfuse-CLI und Konfigurationsdatei für Cloud Storage FUSE. Sie können die Beschleunigeroptimierte Maschinenfamilie auch für eine bessere Leistung bei Ihren KI- und ML-Arbeitslasten verwenden. Weitere Informationen zu den Maschinentypfamilien, die in Compute Engine verfügbar sind, finden Sie im Leitfaden zu Ressourcen und Vergleichen für Maschinenfamilien.
Slurm bietet eine leistungsstarke Option zum Verwalten von KI- und ML-Arbeitslasten und ermöglicht Ihnen, die Konfiguration und Verwaltung der Rechenressourcen zu steuern. Für diesen Ansatz sind Fachkenntnisse in der Slurm-Administration und im Linux-Systemmanagement erforderlich.
Beschleunigeroptionen
Maschinenbeschleuniger sind spezielle Prozessoren, die die für KI- und ML-Arbeitslasten erforderlichen Berechnungen beschleunigen. Sie können entweder GPUs oder TPUs auswählen.
- GPU-Beschleuniger bieten eine hervorragende Leistung für eine Vielzahl von Aufgaben, darunter Grafikrendering, Deep-Learning-Training und wissenschaftliches Rechnen. Google Cloud bietet eine breite Auswahl an GPUs für unterschiedliche Leistungs- und Preisanforderungen. GPUs enthalten oft lokale SSDs in jeder Maschinenkonfiguration, die von Cloud Storage FUSE als Cacheverzeichnis verwendet werden können. Informationen zu GPU-Modellen und ‑Preisen finden Sie unter GPU-Preise.
- TPUs sind speziell entwickelte KI-Beschleuniger, die für das Training und die Inferenz großer KI-Modelle optimiert sind. Sie eignen sich ideal für eine Vielzahl von Anwendungsfällen, z. B. Chatbots, Codegenerierung, Generierung von Medieninhalten, synthetische Sprache, Vision-Dienste, Empfehlungssysteme und Personalisierungsmodelle. Weitere Informationen zu TPU-Modellen und ‑Preisen finden Sie unter TPU-Preise.
Speicheralternativen
Cloud Storage FUSE bietet ein praktisches Dateisystem, mit dem Sie die Skalierbarkeit und Kosteneffizienz von Cloud Storage nutzen können. Cloud Storage FUSE ist jedoch nicht ideal für Arbeitslasten, die eine niedrige Latenz für das Lesen kleiner Dateien erfordern, oder für Arbeitslasten, die eine vollständig POSIX-konforme Speicherlösung erfordern. Für diese Anwendungsfälle empfehlen wir die folgenden Speicherlösungen:
- Google Cloud Managed Lustre: Ein vollständig Google Cloudverwaltetes, persistentes paralleles Dateisystem (PFS), das auf EXAScaler Lustre von DDN basiert. Managed Lustre ist die empfohlene primäre Lösung für das Training und die Prüfpunkte von KI-Arbeitslasten. Sie eignet sich besonders für die Migration vorhandener Arbeitslasten von Lustre oder anderen PFS-Lösungen. Für eine höhere Leistung beim Erstellen von Prüfpunkten sollten Sie Managed Lustre verwenden, um Cloud Storage FUSE mit Anywhere Cache zu erweitern. Weitere Informationen finden Sie unter KI- und ML-Arbeitslasten mit Google Cloud Managed Lustre optimieren.
- Connector for PyTorch: Ein Open-Source-Produkt in Cloud Storage, das sich ideal für Arbeitslasten eignet, die PyTorch verwenden. Der Connector für PyTorch optimiert Ihren Trainings-Workload, indem Daten direkt aus Ihren Cloud Storage-Buckets gestreamt werden. Dadurch ist kein Zwischenspeicher erforderlich. Dieser direkte Zugriff und die Optimierung sorgen für eine deutlich bessere Leistung als direkte API-Aufrufe an Cloud Storage zum Laden von Daten, zum Trainieren und zum Erstellen von Checkpoints.
Alternative Speicheroptionen können zwar Leistungsvorteile für bestimmte KI- und ML-Arbeitslasten bieten, es ist jedoch wichtig, Ihre Anforderungen an Latenz, Durchsatz und Speicherkapazität zu bewerten.
Einen umfassenden Vergleich der Speicheroptionen für KI- und ML-Arbeitslasten finden Sie unter Speicher für KI- und ML-Arbeitslasten in Google Cloudentwerfen.
Designaspekte
In diesem Abschnitt finden Sie Best Practices und Designüberlegungen zum Konfigurieren von Cloud Storage FUSE für Sicherheit, Zuverlässigkeit, Kosten und Leistung. Die Empfehlungen hier sind zwar nicht vollständig, aber sie berücksichtigen wichtige Aspekte, um die Vorteile von Cloud Storage FUSE in Ihrer Umgebung zu maximieren. Je nach Ihren spezifischen Anforderungen und den Merkmalen der Arbeitslast müssen Sie möglicherweise zusätzliche Konfigurationsoptionen und Kompromisse berücksichtigen.
Die folgenden Empfehlungen für das Design enthalten Konfigurationen, mit denen Sie die Bereitstellung von Cloud Storage FUSE in GKE optimieren können. Die meisten Cloud Storage FUSE-Optionen werden mit Bereitstellungsoptionen konfiguriert. Weitere Informationen zu den Cloud Storage FUSE-Befehlszeilenoptionen und deren Verwendung finden Sie unter gcsfuse-CLI und Cloud Storage FUSE-CSI-Treiber für GKE-Leistung optimieren.
Eine Übersicht über Architekturprinzipien und Empfehlungen, die speziell für KI- und ML-Arbeitslasten in Google Cloudgelten, finden Sie im Well-Architected Framework in der KI- und ML-Perspektive.
Sicherheit, Datenschutz und Compliance
In diesem Abschnitt werden Überlegungen zu Ihren KI- und ML-Arbeitslasten in Google Cloud beschrieben, die Ihre Sicherheits-, Datenschutz- und Compliance-Anforderungen erfüllen.
GKE-Überlegungen
Im Autopilot-Betriebsmodus konfiguriert GKE Ihren Cluster vor und verwaltet Knoten gemäß den Sicherheits-Best Practices. So können Sie sich auf die arbeitslastspezifische Sicherheit konzentrieren. Weitere Informationen nachstehend:
- Sicherheitsfunktionen von GKE Autopilot
- Sofort einsatzbereite Kubernetes-Sicherheit mit GKE Autopilot
Mit Identity-Aware Proxy (IAP) können Sie den Zugriff auf Ihre Anwendungen, die in GKE ausgeführt werden, besser steuern. IAP lässt sich in die GKE-Ingress-Ressource einbinden und trägt dazu bei, dass nur authentifizierte Nutzer mit der richtigen IAM-Rolle (Identity and Access Management) auf die Anwendungen zugreifen können. Weitere Informationen finden Sie unter IAP für GKE aktivieren.
Standardmäßig werden Ihre Daten in GKE inaktiv und bei der Übertragung mit Google-owned and Google-managed encryption keysverschlüsselt. Als zusätzliche Sicherheitsebene für vertrauliche Daten können Sie Daten auf Anwendungsebene mit einem Schlüssel verschlüsseln, der Ihnen gehört und den Sie mit Cloud Key Management Service (Cloud KMS) verwalten. Weitere Informationen finden Sie unter Secrets auf Anwendungsebene verschlüsseln.
Wenn Sie einen GKE-Standardcluster verwenden, können Sie die folgenden zusätzlichen Funktionen zur Datenverschlüsselung nutzen:
- Aktive Daten (d. h. im Arbeitsspeicher) mit Confidential GKE Nodes verschlüsseln. Weitere Informationen zu den Funktionen, der Verfügbarkeit und den Einschränkungen von Confidential GKE Nodes finden Sie unter Aktive Arbeitslastdaten mit Confidential GKE Nodes verschlüsseln.
- Wenn Sie mehr Kontrolle über die Verschlüsselungsschlüssel benötigen, die zum Verschlüsseln des Pod-Traffics zwischen GKE-Knoten verwendet werden, können Sie die Daten bei der Übertragung mit von Ihnen verwalteten Schlüsseln verschlüsseln. Weitere Informationen finden Sie unter Daten während der Übertragung in GKE mit nutzerverwalteten Verschlüsselungsschlüsseln verschlüsseln.
Cloud Storage-Überlegungen
Standardmäßig werden die in Cloud Storage gespeicherten Daten mit Google-owned and Google-managed encryption keysverschlüsselt. Bei Bedarf können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEKs) oder Ihre eigenen Schlüssel verwenden, die Sie mithilfe einer externen Verwaltungsmethode wie vom Kunden bereitgestellte Verschlüsselungsschlüssel (Customer-Supplied Encryption Keys, CSEKs) verwalten. Weitere Informationen finden Sie unter Datenverschlüsselungsoptionen.
Cloud Storage bietet Ihnen zwei Systeme, um Nutzern die Berechtigung zum Zugriff auf Ihre Buckets und Objekte zu erteilen: IAM und Access Control Lists (ACLs). In den meisten Fällen empfehlen wir die Verwendung von IAM, mit dem Sie Berechtigungen auf Bucket- und Projektebene erteilen können. Weitere Informationen finden Sie unter Übersicht über die Zugriffssteuerung.
Die Trainingsdaten, die Sie über Cloud Storage laden, können sensible Daten enthalten. Zum Schutz solcher Daten können Sie die Daten mithilfe von Sensitive Data Protection ermitteln, klassifizieren und de-identifizieren. Um Ihre Trainings- und Bereitstellungsarbeitslasten zu trennen, speichern Sie Ihr Modell und Ihre Prüfpunkte in separaten Cloud Storage-Buckets. Diese Isolation trägt dazu bei, dass sensible Informationen aus Ihrem Trainingsdatensatz während der Bereitstellung nicht versehentlich offengelegt werden. Weitere Informationen finden Sie unter Sensitive Data Protection mit Cloud Storage verwenden.
Wenn Sie Anforderungen an den Datenstandort haben, kann Cloud Storage Ihnen helfen, diese Anforderungen zu erfüllen. Daten werden in den von Ihnen angegebenen Regionen gespeichert oder repliziert.
Überlegungen zu Cloud Storage FUSE
Wenn Sie das Caching aktivieren, speichert Cloud Storage FUSE persistente Dateien aus Ihrem Cloud Storage-Bucket in einem unverschlüsselten Format in dem von Ihnen angegebenen Verzeichnis. In Cloud Storage werden alle Dateien für jeden Nutzer oder Prozess mit Verzeichniszugriff verfügbar gemacht. Um diese Risiken zu minimieren und die Sicherheit zu erhöhen, schränkt die FUSE-Kernelschicht den Dateisystemzugriff auf den Nutzer ein, der das System bereitgestellt hat. Diese Einschränkung verweigert anderen Nutzern, einschließlich des Root-Nutzers, den Zugriff, auch wenn die Inode-Berechtigungen weiter gefasst sind.
Es gibt jedoch Anwendungsfälle, in denen es erforderlich sein kann, die Standardeinschränkungen für den Zugriff zu überschreiben. Bei einer verteilten KI- und ML-Trainingsarbeitslast, bei der mehrere Knoten auf in Cloud Storage gespeicherte Prüfpunkte zugreifen und diese freigeben müssen, kann es beispielsweise erforderlich sein, einen umfassenderen Zugriff zuzulassen. In solchen Fällen können Sie die Standardeinschränkung mit der Option -o allow_other
überschreiben.
Wenn Sie den Zugriff auf Ihre Dateien jedoch erweitern, können Sie Ihre Daten potenziell unbefugten Nutzern zugänglich machen.
Seien Sie daher vorsichtig, wenn Sie diese Option verwenden.
Standardmäßig gehören alle Inodes in einem Cloud Storage FUSE-Dateisystem dem Nutzer, der das Dateisystem bereitgestellt hat. Diese Standardeinstellungen sind zwar für viele Fälle geeignet, Sie können aber auch einen Sicherheitskontext für Ihren Pod anpassen. Informationen zum Anpassen eines Sicherheitskontexts finden Sie unter Sicherheit und Berechtigungen.
Weitere Sicherheitsaspekte
Sicherheitsgrundsätze und ‑empfehlungen speziell für KI- und ML-Arbeitslasten finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Sicherheit.
Zuverlässigkeit
Um einen zuverlässigen Betrieb zu gewährleisten, enthält Cloud Storage FUSE automatische Wiederholungsversuche, um potenzielle Unterbrechungen zu beheben und die Datenkonsistenz aufrechtzuerhalten. Fehlgeschlagene Anfragen werden automatisch mit exponentiellem Backoff wiederholt. Beim exponentiellen Backoff wird die Zeit zwischen den Wiederholungen schrittweise verlängert. Dieser integrierte Mechanismus hilft Ihrer Anwendung, vorübergehende Netzwerkprobleme oder eine vorübergehende Nichtverfügbarkeit von Cloud Storage zu überwinden.
Cloud Storage FUSE bietet zwar viele Vorteile, aber Sie sollten Folgendes beachten:
- Gleichzeitige Schreibvorgänge: Wenn mehrere Nutzer versuchen, eine Datei zu ändern, hat der letzte Schreibvorgang Vorrang und alle vorherigen Schreibvorgänge gehen verloren. Um die Datenintegrität zu wahren, empfehlen wir, dass ein einzelnes Objekt zu einem bestimmten Zeitpunkt nur von einer Quelle geändert wird.
- Cache-Persistenz: Wenn Sie Ihren Bucket unmounten oder neu starten, bleiben die Caches nicht erhalten. Um potenzielle Sicherheitsprobleme zu vermeiden, müssen Sie nach dem Unmounten oder Neustarten des Buckets das Dateicacheverzeichnis manuell löschen.
- Prozesse mit dedizierten Caches: Cloud Storage FUSE unterstützt zwar den gleichzeitigen Zugriff für eine effiziente parallele Verarbeitung, es ist jedoch wichtig zu beachten, dass Caches für jeden Cloud Storage FUSE-Prozess spezifisch sind. Daher sollte dasselbe Cache-Verzeichnis nicht von verschiedenen Cloud Storage FUSE-Prozessen verwendet werden, die auf demselben oder verschiedenen Computern ausgeführt werden.
Weitere Überlegungen zur Zuverlässigkeit
Zuverlässigkeitsprinzipien und ‑empfehlungen speziell für KI- und ML-Arbeitslasten finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Zuverlässigkeit.
Kostenoptimierung
Dieser Abschnitt enthält Anleitungen zum Optimieren der Kosten für die Einrichtung und den Betrieb Ihres KI- und ML-Workflows in Google Cloud.
GKE-Überlegungen
Im Autopilot-Modus optimiert GKE die Effizienz der Infrastruktur Ihres Clusters basierend auf den Anforderungen der Arbeitslast. Um die Kosten im Blick zu behalten, müssen Sie die Ressourcennutzung nicht ständig überwachen oder die Kapazität verwalten.
Wenn Sie die CPU-, Arbeitsspeicher- und sitzungsspezifische Speichernutzung Ihres Autopilot-Clusters vorhersagen können, können Sie Rabatte für zugesicherte Nutzung erhalten. Um die Kosten für die Ausführung Ihrer Anwendung zu senken, können Sie Spot-VMs für Ihre GKE-Knoten verwenden. Spot-VMs sind günstiger als Standard-VMs, aber ihre Verfügbarkeit ist nicht garantiert.
Mit dem Dynamic Workload Scheduler können Sie Kosten und Leistung durch effiziente Verwaltung optimieren. Der Dynamic Workload Scheduler ist ein Tool zur Ressourcenverwaltung und Jobplanung, mit dem Sie den Zugriff auf KI- und ML-Ressourcen verbessern können. Der Dynamic Workload Scheduler plant alle Ihre Beschleuniger gleichzeitig und kann außerhalb der Spitzenzeiten mit definierter Beschleunigerkapazitätsverwaltung ausgeführt werden. Durch die strategische Planung von Jobs trägt der Dynamic Workload Scheduler dazu bei, die Nutzung von Beschleunigern zu maximieren, die Leerlaufzeit zu reduzieren und letztendlich Ihre Cloud-Ausgaben zu optimieren.
Weitere Informationen zur Kostenoptimierung finden Sie unter Best Practices zum Ausführen kostenoptimierter Kubernetes-Anwendungen in GKE.
Cloud Storage-Überlegungen
Ihr Speicherbedarf für KI und ML kann dynamisch sein. Für Ihre Trainingsdaten benötigen Sie beispielsweise möglicherweise eine erhebliche Speicherkapazität. Für die Bereitstellung, bei der Sie hauptsächlich Modelldaten und Checkpoints speichern, sinkt der Kapazitätsbedarf jedoch. Zur Kostenkontrolle empfehlen wir, die Verwaltung des Objektlebenszyklus und Autoclass zu aktivieren.
Mit der Verwaltung des Objektlebenszyklus können Sie ältere oder nicht verwendete Daten automatisch in günstigere Speicherklassen verschieben oder sogar löschen lassen. Die entsprechenden Regeln legen Sie selbst fest.
Mit der Funktion „Autoclass“ werden Daten basierend auf Ihren Zugriffsmustern automatisch zwischen Speicherklassen verschoben. Diese Funktion sorgt für ein optimales Verhältnis von Leistung und Kosten.
Überlegungen zu Cloud Storage FUSE
Die standardmäßigen Cloud Storage-Gebühren gelten für Speicher, Metadatenvorgänge und Netzwerkverkehr, die durch Ihre FUSE-Aktivitäten generiert werden. Für die Verwendung von Cloud Storage FUSE fallen keine zusätzlichen Kosten an. Weitere Informationen zu gängigen Cloud Storage FUSE-Vorgängen und ihrer Zuordnung zu Cloud Storage-Vorgängen finden Sie in der Vorgangszuordnung.
Um die Kosten für Ihr Cache-Verzeichnis zu optimieren, können Sie die vorhandene bereitgestellte Maschinenkapazität verwenden, einschließlich lokaler SSDs, nichtflüchtiger Speicher oder In-Memory-Daten für temporäre Dateisysteme. Wenn Sie vorhandene Maschinenkapazität nutzen, können Sie vermeiden, dass Ihnen zusätzliche Speicherressourcen in Rechnung gestellt werden. Außerdem können Sie durch die Maximierung von Cache-Treffern die Cloud Storage-Kosten erheblich senken, da für lokal bereitgestellte Daten keine Gebühren für Vorgänge oder Datenübertragung anfallen.
Weitere Informationen zu den Gebühren finden Sie unter Cloud Storage – Preise.
Weitere Kostengesichtspunkte
Kostenoptimierungsgrundsätze und ‑empfehlungen speziell für KI- und ML-Arbeitslasten finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Kostenoptimierung.
Leistungsoptimierung
Cloud Storage FUSE wurde entwickelt, um effizienten Zugriff auf Daten in Cloud Storage für Ihre KI- und ML-Arbeitslasten zu ermöglichen. Häufige Metadatenanfragen können jedoch die Leistung beeinträchtigen, insbesondere in Clustern mit vielen Knoten. Weitere Informationen zur Leistungssteigerung finden Sie unter CSI-Treiber für Cloud Storage FUSE für GKE-Leistung optimieren und Best Practices für die Leistungsoptimierung.
Zur Optimierung der Leistung sollten Sie die folgenden Konfigurationen in Betracht ziehen:
- Hierarchische Namespaces aktivieren: Um den Datenzugriff und die Organisation zu verbessern, erstellen Sie Cloud Storage-Buckets mit aktiviertem hierarchischen Namespace. Mit hierarchischen Namespaces können Sie Daten in einer Dateisystemstruktur organisieren. Das verbessert die Leistung, sorgt für Konsistenz und vereinfacht die Verwaltung von KI- und ML-Arbeitslasten. Hierarchische Namespaces ermöglichen höhere anfängliche QPS und schnelle atomare Verzeichnisumbenennungen.
Dateicaching aktivieren: Das Dateicaching beschleunigt den wiederholten Zugriff auf Trainingsdaten, indem häufig gelesene Dateien in einem lokalen Knotenverzeichnis zwischengespeichert werden. Wenn wiederholte Lesevorgänge aus einem Cache-Medium bereitgestellt werden, wird die Latenz reduziert und die Anzahl der Vorgänge für Cloud Storage minimiert. Bei GPU-Maschinentypen mit einer lokalen SSD wird automatisch das lokale SSD-Verzeichnis verwendet. Bei Maschinentypen, die keine lokale SSD enthalten, z. B. TPUs, können Sie ein RAM-Laufwerkverzeichnis wie
/tmpfs
verwenden.Verwenden Sie die folgenden Mount-Optionen, um den Dateicache zu aktivieren:
- Wenn Sie den Wert für den nutzbaren Datei-Cache auf das Cache-Kapazitätslimit festlegen möchten, setzen Sie
file-cache:max-size-mb:
auf-1
. - Wenn Sie die Gültigkeitsdauer (TTL) des Metadatencache auf unbegrenzte Dauer festlegen und das Entfernen auf dem LRU-Algorithmus (Least Recently Used, am längsten nicht verwendet) basieren soll, nachdem die maximale Kapazität erreicht ist, legen Sie
metadata-cache:ttl-secs:
auf-1
fest.
- Wenn Sie den Wert für den nutzbaren Datei-Cache auf das Cache-Kapazitätslimit festlegen möchten, setzen Sie
Metadaten-Cache-Werte erhöhen: Cloud Storage FUSE bietet zwei Arten von Metadaten-Cache, die die Leistung für Vorgänge verbessern, die sich auf Metadaten-Lookups beziehen: Statistik-Cache und Typ-Cache.
Um die Werte für den Metadatencache zu erhöhen, legen Sie die folgenden Mount-Optionen fest:
- Wenn Sie den nutzbaren Statistik-Cache-Wert auf das Cache-Kapazitätslimit festlegen möchten, legen Sie
metadata-cache:stat-cache-max-size-mb:
auf-1
fest. - Wenn Sie den nutzbaren Typ-Cache-Wert auf das Kapazitätslimit festlegen möchten, legen Sie
metadata-cache:type-cache-max-size-mb:
auf-1
fest. - Um zu verhindern, dass zwischengespeicherte Metadatenelemente ablaufen (Standardwert: 60 Sekunden), legen Sie
metadata-cache:ttl-secs:
auf-1
fest. Unendliche Werte sollten nur für schreibgeschützte Volumes und Knoten mit großen Speicherkonfigurationen verwendet werden.
- Wenn Sie den nutzbaren Statistik-Cache-Wert auf das Cache-Kapazitätslimit festlegen möchten, legen Sie
Metadaten-Cache vorab füllen: Mit der Funktion zum Vorabrufen von Metadaten kann der Cloud Storage FUSE CSI-Treiber proaktiv relevante Metadaten zu den Objekten in Ihrem Cloud Storage-Bucket in Cloud Storage FUSE-Caches laden. Dieser Ansatz reduziert die Aufrufe von Cloud Storage und ist besonders für Anwendungen von Vorteil, die auf große Datasets mit vielen Dateien zugreifen, z. B. KI- und ML-Trainingsarbeitslasten.
Um den Metadaten-Cache vorab zu füllen, aktivieren Sie das Vorabrufen von Metadaten für das entsprechende Volume. Setze das Lautstärkeattribut
gcsfuseMetadataPrefetchOnMount
auftrue
. Um Unterbrechungen der Arbeitslast zu vermeiden, sollten Sie das Arbeitsspeicherlimit desgke-gcsfuse-metadata-prefetch
-Sidecars erhöhen. Konfigurieren Sie dazu die Sidecar-Ressourcen.Listen-Caching aktivieren: Diese Funktion optimiert Verzeichnisse und Dateien von Einträgen. Das ist besonders vorteilhaft für KI- und ML-Trainingsarbeitslasten, bei denen häufig wiederholt auf ganze Verzeichnisse zugegriffen und diese aufgelistet werden. Durch das Zwischenspeichern von Listen werden die Trainingsprozesse sehr effizient, da nicht wiederholt auf Verzeichnislisten im Arbeitsspeicher Ihres Computers zugegriffen werden muss.
Wenn Sie das Listen-Caching aktivieren und verhindern möchten, dass Kernel-Listencache-Elemente ablaufen, legen Sie die Bereitstellungsoption
file-system:kernel-list-cache-ttl-secs:
auf-1
fest.Parallele Downloads aktivieren: Parallele Downloads beschleunigen das anfängliche Laden des Modells, da mehrere Chunks gleichzeitig abgerufen werden. Wenn Sie parallele Downloads aktivieren, wird das Modell schneller geladen und die Reaktionsfähigkeit während der Bereitstellung verbessert.
Wenn Sie parallele Downloads aktivieren möchten, aktivieren Sie den Dateicache und legen Sie die Bereitstellungsoption
file-cache:enable-parallel-downloads:
auftrue
fest.GKE-Sidecar-Limits erhöhen: Damit Ressourcenbeschränkungen die Leistung nicht beeinträchtigen, konfigurieren Sie Limits für die Ressourcen des Sidecar-Containers, z. B. für CPU- und Arbeitsspeichernutzung. Wenn Sie einen lokalen SSD-Cache verwenden, sollten Sie
ephemeral-storage-limit
auf „Unbegrenzt“ festlegen. Mit dieser Einstellung kann Cloud Storage FUSE den verfügbaren lokalen SSD-Speicher vollständig für erweitertes Caching nutzen.Nur-Lese-Bereitstellung: Da für Trainingsarbeitslasten in der Regel nur Daten gelesen werden müssen, sollten Sie den Bereitstellungspunkt für eine optimale Leistung als schreibgeschützt konfigurieren, insbesondere wenn Sie das Dateicaching verwenden. Diese Konfiguration trägt auch dazu bei, die Vorteile von Optimierungen in Clustern mit hohem Umfang zu maximieren und potenzielle Dateninkonsistenzen zu vermeiden.
Weitere Hinweise zur Leistung
Grundsätze und Empfehlungen zur Leistungsoptimierung, die speziell auf KI- und ML-Arbeitslasten zugeschnitten sind, finden Sie im Well-Architected Framework unter KI- und ML-Perspektive: Leistungsoptimierung.
Nächste Schritte
- Weitere Informationen:
- Cloud Storage FUSE – Übersicht
- Informationen zum CSI-Treiber für Cloud Storage FUSE für GKE
- Best Practices für die Leistungsoptimierung von Cloud Storage FUSE
- CSI-Treiber für Cloud Storage FUSE für GKE-Leistung optimieren
- Best Practices für die Implementierung von maschinellem Lernen in Google Cloud.
- Speicher für KI- und ML-Arbeitslasten in Google Cloud entwerfen.
- Implementieren:
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autorin: Samantha He | Technische Autorin
Weitere Beitragende:
- Dean Hildebrand Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marco Abela | Product Manager
- Sean Derrington | Group Product Manager, Speicher