Dieses Dokument enthält Referenzarchitekturen, die zeigen, wie Sie mit Cloud Storage FUSE die Leistung für KI- und ML-Arbeitslasten in Google Kubernetes Engine (GKE) optimieren können.
Die Zielgruppe dieses Dokuments sind 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, unter Verwendung einer standardmäßigen dateiähnlichen Systemsemantik nahtlos mit cloudbasierten Storage-Buckets zu interagieren. Mit Cloud Storage FUSE nutzen Sie die Skalierbarkeit und Kosteneffizienz von Cloud Storage.
Architektur
Abhängig von Ihren Anforderungen an Leistung, Verfügbarkeit und Notfallwiederherstellung 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 innerhalb einer einzelnenGoogle Cloud-Region ausgeführt. Wir empfehlen diesen Bereitstellungsarchetyp für Anwendungen, die nicht geschäftskritisch sind, aber gegen Zonenausfälle resistent sein müssen.
- Multiregional: Ihre Anwendungen werden unabhängig über zwei oder mehr Google Cloud Regionen entweder im Aktiv/Aktiv- oder im Aktiv/Passiv-Modus ausgeführt. Dieser Bereitstellungsarchetyp ist ideal für DR-Szenarien. Wir empfehlen diesen Bereitstellungsarchetyp für geschäftskritische Anwendungen, die Widerstandsfähigkeit gegen regionale Ausfälle und Katastrophen benötigen. Duale oder multiregionale Bereitstellungen können die Latenz reduzieren und den Durchsatz durch engere Nähe zu Ressourcen verbessern.
Der ausgewählte Bereitstellungsarchetyp hat die Grundlage für die Google Cloud Produkte und Features, die Sie für Ihre Architektur benötigen. Die multiregionale Architektur verwendet Anywhere Cache. Wenn Sie prüfen möchten, ob der Anywhere-Cache für Ihre Arbeitslast geeignet ist, verwenden Sie den Anywhere Cache-Recommender zur Analyse der Datennutzung und des Speichers.
Die folgenden Tabs enthalten Referenzarchitekturen für die regionalen und multiregionalen Bereitstellungsarchetypen:
Regional
Das folgende Diagramm zeigt ein Beispiel für eine regionale Architektur, in der Cloud Storage FUSE verwendet wird, um die Leistung der Workflows für Modelltraining und Modellbereitstellung zu optimieren:
Diese Architektur umfasst die folgenden Komponenten:
- GKE-Cluster: GKE verwaltet die Computing-Knoten, auf denen die Trainings- und Bereitstellungsprozesse Ihres KI- und ML-Modells ausgeführt werden. GKE verwaltet die zugrunde liegende Infrastruktur der Kubernetes-Cluster, einschließlich der Steuerungsebene, Knoten und aller Systemkomponenten.
- Kubernetes-Planer: Die GKE-Steuerungsebene plant Arbeitslasten und verwaltet deren Lebenszyklus, Skalierung und Upgrades. Der Kubernetes-Knoten-Agent (
kubelet
), der nicht im Diagramm dargestellt ist, kommuniziert mit der Steuerungsebene. Derkubelet
-Agent ist dafür verantwortlich, Container zu starten und auszuführen, die auf den GKE-Knoten geplant sind. Weitere Informationen zum Planer finden Sie unter KI-/ML-Orchestrierung in GKE. - VPC-Netzwerk (Virtual Private Cloud): Alle Google Cloud-Ressourcen in der Architektur verwenden ein einziges 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 auf effiziente Weise eingehende Inferenzanfragen von Anwendungsnutzern auf die Bereitstellungscontainer im GKE-Cluster. Weitere Informationen finden Sie unter Informationen zum GKE-Load-Balancing.
- Graphics Processing Unit (GPU) oder Tensor Processing Units (TPUs): GPUs und TPUs sind spezialisierte Maschinenbeschleuniger, mit denen die Leistung von KI- und ML-Arbeitslasten verbessert wird. Informationen zum Auswählen eines geeigneten Prozessortyps finden Sie unter Beschleunigeroptionen weiter unten in diesem Dokument.
- Cloud Storage: Cloud Storage bietet nichtflüchtigen, skalierbaren und kostengünstigen Speicher für Ihre KI- und ML-Arbeitslasten. Cloud Storage dient als zentrales Repository für Ihre unbearbeiteten Trainings-Datasets, Modell-Prüfpunkte und endgültigen trainierten Modelle.
- Cloud Storage FUSE mit aktiviertem Datei-Cache: 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 Dateien gespeichert werden, auf die häufig aus Ihren Cloud Storage-Buckets zugegriffen wird. Der CSI-Treiber für Cloud Storage FUSE 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 für die Trainings- und Bereitstellungsarbeitslasten der Architektur beschrieben.
Multiregional
Das folgende Diagramm zeigt ein Beispiel für eine multiregionale Architektur, die Cloud Storage FUSE und Anywhere Cache verwendet, um die Leistung der Workflows für Modelltraining und Modellbereitstellung zu optimieren:
Diese Architektur umfasst die folgenden Komponenten:
- GKE-Cluster: GKE verwaltet die Computing-Knoten, auf denen die Trainings- und Bereitstellungsprozesse Ihrer KI- und ML-Modelle ausgeführt werden. GKE verwaltet die zugrunde liegende Infrastruktur der Kubernetes-Cluster, einschließlich der Steuerungsebene, Knoten und aller Systemkomponenten.
- Kubernetes-Planer: Die GKE-Steuerungsebene plant Arbeitslasten und verwaltet deren Lebenszyklus, Skalierung und Upgrades. Der Kubernetes-Knoten-Agent (
kubelet
), der nicht im Diagramm dargestellt ist, kommuniziert mit der Steuerungsebene. Derkubelet
-Agent ist dafür verantwortlich, Container zu starten und auszuführen, die auf den GKE-Knoten geplant sind. Weitere Informationen zum Planer finden Sie unter KI-/ML-Orchestrierung in GKE. - VPC-Netzwerk (Virtual Private Cloud): Alle Google Cloud-Ressourcen in der Architektur verwenden ein einziges 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 Traffic an die Load-Balancer weiter, um eine optimale Leistung und Verfügbarkeit über Anycast-Routing zu gewährleisten. Anfragen werden automatisch an den nächstgelegenen Standort weitergeleitet, wodurch die Latenz verringert und die Leistung bei der Suche des autoritativen Namens für Ihre Nutzer verbessert wird. Informationen zu allgemeinen Prinzipien und Best Practices finden Sie unter Best Practices für Cloud DNS.
- Cloud Load Balancing: In dieser Architektur verteilt Cloud Load Balancing auf effiziente Weise eingehende Inferenzanfragen von Anwendungsnutzern auf die Bereitstellungscontainer im GKE-Cluster. Weitere Informationen finden Sie unter Informationen zum GKE-Load-Balancing.
- Graphics Processing Unit (GPU) oder Tensor Processing Units (TPUs): GPUs und TPUs sind spezialisierte Maschinenbeschleuniger, mit denen die Leistung von KI- und ML-Arbeitslasten verbessert wird. Informationen zum Auswählen eines geeigneten Prozessortyps finden Sie unter Beschleunigeroptionen weiter unten in diesem Dokument.
- Cloud Storage: Cloud Storage bietet nichtflüchtigen, skalierbaren und kostengünstigen Speicher für Ihre KI- und ML-Arbeitslasten. Cloud Storage dient als zentrales Repository für Ihre unbearbeiteten Trainings-Datasets, Modell-Prüfpunkte und endgültigen trainierten Modelle.
- Cloud Storage FUSE: Mit Cloud Storage FUSE können Sie einen Cloud Storage-Bucket als lokales Dateisystem bereitstellen. Der CSI-Treiber für Cloud Storage FUSE, der im Diagramm nicht gezeigt wird, verwaltet die Einbindung von Cloud Storage FUSE in die Kubernetes API, um Cloud Storage-Buckets als Volumes zu nutzen.
- Anywhere Cache: „Anywhere Cache“ ist ein Feature von Cloud Storage, das bis zu 1 PiB des SSD-gestützten zonalen schreibgeschützten Cache für Cloud Storage-Buckets zur Verfügung stellt. Während des Trainings und der Bereitstellung hilft Ihnen Anywhere Cache, durch Skalierung der Cache-Kapazität und -Bandbreite einen Durchsatz von über 1 TB/s zu erreichen.
In den folgenden Abschnitten wird der Workflow für die Trainings- und Bereitstellungsarbeitslasten der Architektur beschrieben.
Trainingsarbeitslast
In den vorherigen Architekturen sind die Schritte im Datenfluss während des Modelltrainings so:
- 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 laden und Trainingsjobs in GKE ausführen: Mit dem Cloud Storage-Bucket, der in Ihren GKE-Pods bereitgestellt wird, können Ihre Trainingsanwendungen die Trainingsdaten über die FUSE-Schnittstelle effizient laden und abrufen. Die GKE-Knoten führen das Modelltraining mit dem bereitgestellten Dateicache als Datenquelle aus. Ihre Trainingsanwendungen speisen kontinuierlich Trainingsdaten an die Maschinenbeschleuniger, um die komplexen Berechnungen durchzuführen, die für das Modelltraining erforderlich sind. Je nach Arbeitslastanforderungen können Sie GPUs oder TPUs verwenden. Informationen zum Auswählen des geeigneten Prozessortyps finden Sie unter Beschleunigeroptionen weiter unten in diesem Dokument.
Prüfpunkt und Modell speichern und wiederherstellen:
- Prüfpunkte oder Modell speichern: Speichern Sie Prüfpunkte während des Trainings in regelmäßigen Abständen asynchron in einem separaten Cloud Storage-Bucket. Die Prüfpunkte erfassen den Status des Modells anhand von Messwerten oder Intervallen, die Sie definieren.
- Prüfpunkte oder Modell wiederherstellen: Wenn für die Trainingsarbeitslast ein Prüfpunkt oder Modelldaten wiederhergestellt werden müssen, müssen Sie das Asset suchen, das Sie in Cloud Storage wiederherstellen möchten. Sie können den wiederhergestellten Prüfpunkt oder das wiederhergestellte Modell verwenden, um das Training fortzusetzen, Parameter zu optimieren oder die Leistung eines Validierungs-Datasets zu bewerten.
Bereitstellungsarbeitslast
In den vorherigen Architekturen sind die Schritte im Datenfluss während der Modellbereitstellung so:
- Modell laden: Nach Abschluss des Trainings laden die Pods das trainierte Modell mithilfe von Cloud Storage FUSE mit aktivierten parallelen Downloads. Parallele Downloads beschleunigen das Laden des Modells, da die Teile des Modells parallel aus Cloud Storage abgerufen werden. Um die Ladezeiten von Modellen erheblich zu verkürzen, verwendet der Prozess das Cache-Verzeichnis als Prefetch-Zwischenspeicher.
- Inferenzanfrage: Anwendungsnutzer senden Inferenzanfragen von der KI- und ML-Anwendung über den Cloud Load Balancing-Dienst. Cloud Load Balancing verteilt die eingehenden Anfragen auf die Bereitstellungscontainer im GKE-Cluster. Diese Verteilung sorgt dafür, dass kein einzelner Container überlastet wird und Anfragen effizient verarbeitet werden.
- Antwortzustellung: Die Knoten verarbeiten die Anfrage und generieren eine Vorhersage. Die Bereitstellungscontainer senden die Antworten über Cloud Load Balancing zurück und dann an die Anwendungsnutzer.
Verwendete Produkte
Die Referenzarchitekturen verwenden die folgenden Google Cloud Produkte:
- Google Kubernetes Engine (GKE): Ein Kubernetes-Dienst, mit dem Sie Containeranwendungen in großem Maßstab mithilfe der Google-Infrastruktur 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 aus Gründen der Redundanz standortübergreifend 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 VPCs.
- Cloud Load Balancing: Ein Portfolio von leistungsstarken, skalierbaren, globalen und regionalen Load-Balancern
- Cloud DNS: Ein Dienst, der eine 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 Hochleistungs-Dateizugriff erfordern, empfehlen wir die Verwendung einer Architektur, die auf Cloud Storage FUSE basiert. Mit richtiger Planung können Sie mit diesen Architekturen einen Durchsatz von mehr als 1 TB/s erreichen. Darüber hinaus 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 Skalierung oder Größe.
Für diese Arbeitslasten bietet Cloud Storage FUSE die folgenden Vorteile:
- Vereinfachter Datenzugriff: Mit KI- und ML-Frameworks wie Connector for PyTorch, JAX und TensorFlow können Sie auf Trainingsdaten und Checkpoints zugreifen. Durch den Zugriff auf Daten über KI- und ML-Frameworks ist keine Code-Refaktorierung erforderlich.
- Beschleunigter Start: Sie müssen keine großen Datasets zur Rechenressourcen herunterladen, indem Sie Cloud Storage FUSE für den direkten Zugriff auf Daten in Cloud Storage verwenden. Dieser direkte Zugriff auf Daten führt zu kürzeren Startzeiten für Jobs.
- Kosteneffizienz: Optimieren Sie die Kosten mithilfe der inhärenten Skalierbarkeit und Kosteneffizienz von Cloud Storage.
Cloud Storage FUSE eignet sich nicht für latenzempfindliche Arbeitslasten, die Dateien mit weniger als 50 MB enthalten oder eine Latenz von weniger als einer Millisekunde für den zufälligen E/A- und Metadatenzugriff erfordern.
Ziehen Sie für datenintensives Training oder Checkpoint- und Neustartarbeitslasten während der E/A-intensiven Trainingsphase eine Speicheralternative in Betracht.
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 Modelltrainings- und Bereitstellungsworkflow in GKE zu hosten, können Sie Compute Engine mit Slurm in Betracht ziehen. Slurm ist ein hoch konfigurierbarer Open-Source-Arbeitslast- und Ressourcenmanager. Die Verwendung von Compute Engine mit Slurm eignet sich besonders für umfangreiches Modelltraining und Simulationen. Wir empfehlen die Verwendung von Compute Engine mit Slurm, wenn Sie proprietäre KI- und ML-IP-Adressen in eine skalierbare Umgebung einbinden möchten, die Flexibilität und Kontrolle bietet, um die Leistung für spezialisierte 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 virtuelle Maschinen (VMs) bereit und verwalten sie. Dadurch haben Sie eine detaillierte Kontrolle über Instanztypen, Speicher und Netzwerke. Sie können Ihre Infrastruktur genau auf Ihre Anforderungen zuschneiden und bestimmte VM-Maschinentypen auswählen. Informationen zur Verwendung der Befehlszeilenoptionen für Cloud Storage FUSE in Compute Engine finden Sie unter gcsfuse CLI und Cloud Storage FUSE-Konfigurationsdatei. Sie können auch die beschleunigeroptimierte Maschinenfamilie verwenden, um die Leistung bei Ihren KI- und ML-Arbeitslasten zu verbessern. Weitere Informationen zu den in Compute Engine verfügbaren Maschinentypfamilien finden Sie unter Ressourcen und Vergleiche für Maschinenfamilien.
Slurm bietet eine leistungsstarke Option zum Verwalten von KI- und ML-Arbeitslasten. Außerdem können Sie damit die Konfiguration und Verwaltung von Rechenressourcen steuern. Für diesen Ansatz benötigen Sie Fachkenntnisse in der Verwaltung von Slurm und der Linux-Systemverwaltung.
Accelerator-Optionen
Maschinenbeschleuniger sind spezialisierte Prozessoren, die dazu dienen, die für KI- und ML-Arbeitslasten erforderlichen Berechnungen zu beschleunigen. Sie können zwischen GPUs und TPUs wählen.
- GPU-Beschleuniger bieten eine hervorragende Leistung für eine Vielzahl von Aufgaben, einschließlich Grafikrendering, Deep-Learning-Training und wissenschaftlichem Computing. Google Cloud bietet eine große Auswahl an GPUs, die zu einer Reihe von Leistungs- und Preispunkten passt. GPUs enthalten häufig lokale SSDs in jeder Maschinenkonfiguration, die von Cloud Storage FUSE als Cache-Verzeichnis 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 kleine Dateilesevorgänge erfordern, oder für Arbeitslasten, die eine vollständige POSIX-konforme Speicherlösung erfordern. Für diese Anwendungsfälle empfehlen wir die folgenden Speicheralternativen:
- Google Cloud Hyperdisk ML: Eine leistungsstarke Blockspeicherlösung, die sich ideal für Arbeitslasten eignet, die größere Cluster mit Hunderten von Knoten mit kleineren schreibgeschützten Datasets im Bereich von Hunderten GB bis 64 TB haben. Hyperdisk ML hat einen höheren Durchsatz als Cloud Storage und kann im Lesemodus an mehrere VMs angehängt werden. Mit dem Zugriffsmodus Kubernetes ReadOnlyMany kann Hyperdisk ML das Laden von Modellgewichtungen im Vergleich zum direkten Laden aus einer Modell-Registry beschleunigen. Weitere Informationen zur Verwendung von Hyperdisk ML in KI- und ML-Arbeitslasten finden Sie unter Das Laden von KI-/ML-Daten mit Hyperdisk ML beschleunigen.
- Connector für PyTorch: Ein Open-Source-Produkt in Cloud Storage, das sich ideal für Arbeitslasten eignet, die PyTorch verwenden. Der Connector für PyTorch optimiert Ihre Trainingsarbeitslast, indem er Daten direkt aus Ihren Cloud Storage-Buckets streamt und keinen Zwischenspeicher benötigt. Dieser direkte Zugriff und diese Optimierung bieten eine deutlich bessere Leistung als direkte API-Aufrufe an Cloud Storage zum Laden, Trainieren und Prüfpunktieren von Daten.
Obwohl alternative Speicheroptionen für bestimmte KI- und ML-Arbeitslasten Leistungsvorteile bieten können, ist es wichtig, Ihre Anforderungen in Bezug auf Latenz, Durchsatz und Speicherkapazität zu bewerten.
Einen umfassenden Vergleich der Speicheroptionen für KI- und ML-Arbeitslasten finden Sie unter Speicherdesign für KI- und ML-Arbeitslasten in Google Cloud.
Designaspekte
Dieser Abschnitt enthält Best Practices und Designüberlegungen zum Konfigurieren von Cloud Storage FUSE im Hinblick auf Sicherheit, Zuverlässigkeit, Kosten und Leistung. Auch wenn die Empfehlungen hier nicht vollständig sind, behandeln sie wichtige Überlegungen zur Maximierung der Vorteile von Cloud Storage FUSE in Ihrer Umgebung. Je nach Ihren spezifischen Anforderungen und Arbeitslastmerkmalen müssen Sie möglicherweise zusätzliche Konfigurationsoptionen und Vor- und Nachteile in Betracht ziehen.
In den folgenden Designempfehlungen werden Konfigurationen vorgestellt, mit denen Sie die Bereitstellung von Cloud Storage FUSE in GKE optimieren können. Die meisten Cloud Storage FUSE-Optionen sind mit Bereitstellungsoptionen konfiguriert. Weitere Informationen zu den Befehlszeilenoptionen von Cloud Storage FUSE und ihrer Verwendung finden Sie unter gcsfuse-Befehlszeile und CSI-Treiber für Cloud Storage FUSE für GKE-Leistung optimieren.
Sicherheit, Datenschutz und Compliance
In diesem Abschnitt werden Überlegungen für Ihre KI- und ML-Arbeitslasten in Google Cloud beschrieben, die Ihren Sicherheits-, Datenschutz- und Compliance-Anforderungen entsprechen.
Hinweise zu GKE
Im Autopilot-Modus konfiguriert GKE den Cluster vorkonfiguriert und Knoten gemäß Best Practices für die Sicherheit. So können Sie sich auf die arbeitslastspezifische Sicherheit konzentrieren. Weitere Informationen nachstehend:
Für eine erweiterte Zugriffssteuerung für Ihre in GKE ausgeführten Anwendungen können Sie Identity-Aware Proxy (IAP) verwenden. IAP lässt sich in die GKE Ingress-Ressource einbinden. Dadurch wird sichergestellt, 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 im inaktiven Zustand und bei der Übertragung mit Google-owned and Google-managed encryption keysverschlüsselt. Als zusätzliche Sicherheitsebene für sensible Daten können Sie Daten auf Anwendungsebene verschlüsseln. Dazu verwenden Sie einen Schlüssel, der Ihnen gehört und mit dem Cloud Key Management Service (Cloud KMS) verwaltet wird. Weitere Informationen finden Sie unter Secrets auf Anwendungsebene verschlüsseln.
Wenn Sie einen GKE-Standardcluster verwenden, können Sie die folgenden zusätzlichen Datenverschlüsselungsfunktionen verwenden:
- Verschlüsseln Sie aktive Daten (d. h. im Arbeitsspeicher) mithilfe von Confidential GKE Nodes. Weitere Informationen zu den Funktionen, Verfügbarkeit und 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, mit denen der Pod-Traffic zwischen GKE-Knoten verschlüsselt wird, 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.
Hinweise zu Cloud Storage
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 über eine externe Verwaltungsmethode wie vom Kunden bereitgestellte Verschlüsselungsschlüssel (Customer-Supplied Encryption Keys, CSEKs) verwalten. Weitere Informationen finden Sie unter Datenverschlüsselungsoptionen.
Cloud Storage unterstützt zwei Methoden, um Nutzern Zugriff auf Ihre Buckets und Objekte zu gewähren: 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 gewähren 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 Sensitive Data Protection verwenden, um die Daten zu ermitteln, zu klassifizieren und zu de-identifizieren. Zum Trennen der Trainings- und Bereitstellungsarbeitslasten speichern Sie das Modell und die Prüfpunkte in Cloud Storage-Buckets. Durch diese Isolation wird verhindert, dass während der Bereitstellung vertrauliche Informationen aus dem Trainings-Dataset versehentlich offengelegt werden. Weitere Informationen finden Sie unter Schutz sensibler Daten mit Cloud Storage verwenden.
Wenn Sie Anforderungen an den Datenstandort haben, kann Ihnen Cloud Storage dabei 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 nichtflüchtige Dateien aus Ihrem Cloud Storage-Bucket in einem unverschlüsselten Format in dem von Ihnen angegebenen Verzeichnis. Cloud Storage macht alle Dateien für jeden Nutzer oder Prozess verfügbar, der Zugriff auf das Verzeichnis hat. Um diese Risiken zu minimieren und die Sicherheit zu verbessern, beschränkt die FUSE-Kernelebene den Dateisystemzugriff auf den Nutzer, der das System bereitgestellt hat. Durch diese Einschränkung wird anderen Nutzern, einschließlich des Root-Nutzers, der Zugriff verweigert, auch wenn die Inode-Berechtigungen umfassender sind.
Es gibt jedoch Anwendungsfälle, in denen die standardmäßigen Zugriffsbeschränkungen möglicherweise überschrieben werden müssen. In einer verteilten KI- und ML-Trainingsarbeitslast, in der mehrere Knoten beispielsweise auf in Cloud Storage gespeicherte Prüfpunkte zugreifen und diese teilen müssen, müssen Sie möglicherweise einen umfassenderen Zugriff zulassen. In solchen Fällen können Sie die Standardeinschränkung mithilfe der Option -o allow_other
überschreiben.
Wenn Sie jedoch den Zugriff auf Ihre Dateien ausweiten, können Sie möglicherweise Ihre Daten nicht autorisierten Nutzern aussetzen.
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. Auch wenn diese Standardeinstellungen für viele Fälle geeignet sein können, können Sie einen Sicherheitskontext für Ihren Pod anpassen. Informationen zum Anpassen eines Sicherheitskontexts finden Sie unter Sicherheit und Berechtigungen.
Zuverlässigkeit
Um einen zuverlässigen Betrieb zu gewährleisten, umfasst Cloud Storage FUSE automatische Wiederholungsversuche, um mögliche Unterbrechungen zu bewältigen und die Datenkonsistenz zu wahren. Fehlgeschlagene Anfragen werden automatisch mit exponentiellem Backoff an Cloud Storage wiederholt. Der exponentielle Backoff verlängert die Zeit zwischen den Wiederholungen schrittweise. Dieser integrierte Mechanismus hilft Ihrer Anwendung, vorübergehende Netzwerkprobleme oder vorübergehende Nichtverfügbarkeit von Cloud Storage zu überwinden.
Obwohl Cloud Storage FUSE viele Vorteile bietet, sollten Sie Folgendes berücksichtigen:
- Gleichzeitige Schreibvorgänge: Wenn mehrere Nutzer versuchen, eine Datei zu ändern, hat der Vorgang letzter Schreibvorgang Vorrang und alle vorherigen Schreibvorgänge gehen verloren. Zur Aufrechterhaltung der Datenintegrität empfehlen wir, ein einzelnes Objekt jederzeit nur von einer Quelle zu ändern.
- Cache-Persistenz: Wenn Sie einen Bucket trennen oder neu starten, gehen Caches nicht verloren. Nachdem Sie den Bucket getrennt oder neu gestartet haben, müssen Sie das Datei-Cache-Verzeichnis manuell löschen, um potenzielle Sicherheitsprobleme zu vermeiden.
- Prozesse mit dedizierten Caches: Obwohl Cloud Storage FUSE den gleichzeitigen Zugriff für eine effiziente parallele Verarbeitung unterstützt, ist 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 auf verschiedenen Rechnern ausgeführt werden.
Berücksichtigen Sie beim Erstellen der Architektur für Ihre Arbeitslast auch die allgemeinen Best Practices und Empfehlungen im Well-Architected Framework: Reliability Säule.
Kostenoptimierung
Dieser Abschnitt enthält Anleitungen zur Optimierung der Kosten für die Einrichtung und den Betrieb Ihres KI- und ML-Workflows in Google Cloud.
Hinweise zu GKE
Im Autopilot-Modus optimiert GKE die Effizienz der Clusterinfrastruktur anhand der Arbeitslastanforderungen. Zur Kostenkontrolle müssen Sie die Ressourcennutzung nicht ständig überwachen oder die Kapazität verwalten.
Wenn Sie die Nutzung von CPU, Arbeitsspeicher und sitzungsspezifischem Speicher Ihres Autopilot-Clusters vorhersagen können, können Sie Rabatte für zugesicherte Nutzung erhalten. Sie können Spot-VMs für Ihre GKE-Knoten verwenden, um die Kosten für die Ausführung Ihrer Anwendung zu senken. Spot-VMs kosten niedrigere Preise als Standard-VMs, bieten jedoch keine Garantie für die Verfügbarkeit.
Mit dem dynamischen Workload-Planer optimieren Sie die Kosten und die Leistung durch eine effiziente Verwaltung. Der dynamische Arbeitslastplaner ist ein Ressourcenverwaltungs- und Jobplaner, mit dem Sie den Zugriff auf KI- und ML-Ressourcen verbessern können. Der dynamische Arbeitslastplaner plant alle Beschleuniger gleichzeitig und kann außerhalb der Spitzenzeiten mit definierter Beschleunigerkapazitätsverwaltung ausgeführt werden. Durch die strategische Planung von Jobs hilft der dynamische Arbeitslastplaner dabei, die Beschleunigernutzung 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.
Hinweise zu Cloud Storage
Ihre KI- und ML-Speicheranforderungen können dynamisch sein. Beispielsweise benötigen Sie möglicherweise eine erhebliche Speicherkapazität für Ihre Trainingsdaten, Ihr Kapazitätsbedarf sinkt jedoch für die Bereitstellung, bei der Sie hauptsächlich Modelldaten und Prüfpunkte speichern. Zur Kostenkontrolle empfehlen wir, die Verwaltung des Objektlebenszyklus und Autoclass zu aktivieren.
Durch die Verwaltung des Objektlebenszyklus können Sie automatisch ältere oder nicht verwendete Daten in kostengünstigere Speicherklassen verschieben oder die Daten basierend auf von Ihnen festgelegten Regeln sogar löschen.
Mit der Autoclass-Funktion werden Daten je nach Ihren Zugriffsmustern automatisch zwischen Speicherklassen verschoben. Dieses Feature sorgt für ein optimales Gleichgewicht zwischen Leistung und Kosten.
Überlegungen zu Cloud Storage FUSE
Die Cloud Storage-Standardgebühren gelten für Speicher, Metadatenvorgänge und Netzwerkverkehr, der durch Ihre FUSE-Aktivitäten generiert wird. Für die Nutzung von Cloud Storage FUSE fallen keine zusätzlichen Kosten an. Weitere Informationen zu gängigen Cloud Storage FUSE-Vorgängen und deren Zuordnung zu Cloud Storage-Vorgängen finden Sie unter Vorgangszuordnung.
Zur Optimierung der Kosten für das Cache-Verzeichnis können Sie die vorhandene bereitgestellte Maschinenkapazität verwenden, einschließlich lokaler SSDs, nichtflüchtiger Speicher oder speicherinterner Daten für temporäre Dateisysteme. Wenn Sie vorhandene Maschinenkapazität nutzen, können Sie Gebühren für zusätzliche Speicherressourcen vermeiden. Darüber hinaus können durch das Maximieren von Cache-Treffern die Cloud Storage-Kosten erheblich reduziert werden, da für lokal bereitgestellte Daten keine Vorgangsgebühren oder Gebühren für ausgehenden Netzwerktraffic anfallen.
Weitere Informationen zu Gebühren finden Sie unter Cloud Storage – Preise.
Berücksichtigen Sie beim Erstellen der Architektur für Ihre Arbeitslast auch die allgemeinen Best Practices und Empfehlungen des Well-Architected Framework: Kostenoptimierung.
Leistungsoptimierung
Cloud Storage FUSE ermöglicht einen effizienten Zugriff auf Daten in Cloud Storage für Ihre KI- und ML-Arbeitslasten. Häufige Metadatenanfragen können jedoch die Leistung beeinträchtigen, insbesondere in hochskalierten Clustern. Weitere Informationen zur Leistungsverbesserung finden Sie unter CSI-Treiber für Cloud Storage FUSE für die GKE-Leistung optimieren.
Ziehen Sie die folgenden Konfigurationen in Betracht, um die Leistung zu optimieren:
- Hierarchische Namespaces aktivieren: Erstellen Sie Cloud Storage-Buckets mit aktivierten hierarchischen Namespaces, um den Datenzugriff und die Organisation zu verbessern. Mit hierarchischen Namespaces können Sie Daten in einer Dateisystemstruktur organisieren. Dies verbessert die Leistung, sorgt für Konsistenz und vereinfacht die Verwaltung von KI- und ML-Arbeitslasten. Hierarchische Namespaces ermöglichen höhere anfängliche Abfragen pro Sekunde und schnelles Umbenennen von atomaren Verzeichnissen.
Datei-Caching aktivieren: Datei-Caching beschleunigt den wiederholten Zugriff auf Trainingsdaten, indem ein lokales Knotenverzeichnis zum Speichern häufig gelesener Dateien verwendet wird. Die Bereitstellung wiederholter Lesevorgänge aus einem Cache-Medium reduziert die Latenz und minimiert Vorgänge zurück zu Cloud Storage. Bei GPU-Maschinentypen mit einer lokalen SSD wird automatisch das lokale SSD-Verzeichnis verwendet. Für Maschinentypen ohne lokale SSDs wie TPUs können Sie ein RAM-Disk-Verzeichnis wie
/tmpfs
verwenden.Verwenden Sie die folgenden Bereitstellungsoptionen, um den Dateicache zu aktivieren:
- Wenn Sie den nutzbaren Wert des 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) von Metadaten-Caches auf eine unbegrenzte Dauer und die Bereinigung basierend auf dem LRU-Algorithmus (LRU) nach dem Erreichen der maximalen Kapazität festlegen möchten, setzen Sie
metadata-cache:ttl-secs:
auf-1
.
- Wenn Sie den nutzbaren Wert des Datei-Cache auf das Cache-Kapazitätslimit festlegen möchten, setzen Sie
Werte für den Metadaten-Cache erhöhen: Cloud Storage FUSE bietet zwei Arten von Metadaten-Caches, die die Leistung bei Vorgängen im Zusammenhang mit Metadaten-Suchen verbessern: Statistik-Cache und Typ-Cache.
Wenn Sie die Werte für den Metadaten-Cache erhöhen möchten, legen Sie die folgenden Bereitstellungsoptionen fest:
- Wenn Sie den nutzbaren Wert des Statistik-Cache für das Cache-Kapazitätslimit festlegen möchten, setzen Sie
metadata-cache:stat-cache-max-size-mb:
auf-1
. - Wenn Sie den Cache-Wert des nutzbaren Typs auf das Kapazitätslimit setzen möchten, setzen Sie
metadata-cache:type-cache-max-size-mb:
auf-1
. - Um zu verhindern, dass im Cache gespeicherte Metadatenelemente ablaufen, legen Sie für den Standardwert von 60 Sekunden
metadata-cache:ttl-secs:
auf-1
fest. Unendliche Werte sollten nur für schreibgeschützte Volumes und Knoten mit großen Arbeitsspeicherkonfigurationen verwendet werden.
- Wenn Sie den nutzbaren Wert des Statistik-Cache für das Cache-Kapazitätslimit festlegen möchten, setzen Sie
Metadaten-Cache vorab füllen: Mit der Metadaten-Vorabruffunktion kann der CSI-Treiber von Cloud Storage FUSE proaktiv relevante Metadaten zu den Objekten in Ihrem Cloud Storage-Bucket in Cloud Storage FUSE-Caches laden. Durch diesen Ansatz werden die Aufrufe von Cloud Storage reduziert. Dies ist besonders für Anwendungen vorteilhaft, die auf große Datasets mit vielen Dateien zugreifen, z. B. KI- und ML-Trainingsarbeitslasten.
Wenn Sie den Metadaten-Cache vorab füllen möchten, aktivieren Sie den Metadaten-Vorabruf für das angegebene Volume. Legen Sie das Volume-Attribut
gcsfuseMetadataPrefetchOnMount
auftrue
fest.Listen-Caching aktivieren: Mit dieser Funktion wird das Auflisten von Verzeichnissen und Dateien optimiert. Dies ist besonders nützlich für KI- und ML-Trainingsarbeitslasten, bei denen häufig wiederholt auf ganze Verzeichnisse zugegriffen und diese aufgelistet werden müssen. Das Listen-Caching bietet äußerst effiziente Trainingsprozesse, da der wiederholte Zugriff auf Verzeichniseinträge im Arbeitsspeicher Ihres Computers reduziert wird.
Wenn Sie das Listen-Caching aktivieren und verhindern möchten, dass Elemente im Kernel-Listen-Cache 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 Blöcke gleichzeitig abgerufen werden. Wenn Sie parallele Downloads aktivieren, werden das Modell schneller geladen und die Reaktionsfähigkeit während der Bereitstellung verbessert.
Wenn Sie parallele Downloads aktivieren möchten, aktivieren Sie den Datei-Cache und setzen Sie die Bereitstellungsoption
file-cache:enable-parallel-downloads:
auftrue
.GKE-Sidecar-Limits erhöhen: Damit Ressourcenbeschränkungen die Leistung nicht beeinträchtigen, konfigurieren Sie Limits für die Ressourcen des Sidecar-Containers, zum Beispiel für die CPU- und Arbeitsspeichernutzung. Wenn Sie einen lokalen SSD-Cache verwenden, sollten Sie
ephemeral-storage-limit
auf „unbegrenzt“ setzen. Diese Einstellung ermöglicht es Cloud Storage FUSE, den verfügbaren lokalen SSD-Speicher für optimiertes Caching vollständig zu nutzen.Schreibgeschützte Bereitstellung: Da Trainingsarbeitslasten in der Regel nur Daten lesen müssen, sollten Sie den Bereitstellungspunkt für eine optimale Leistung als schreibgeschützt konfigurieren, insbesondere wenn Sie Datei-Caching verwenden. Diese Konfiguration trägt auch dazu bei, die Vorteile von Optimierungen in hochskalierten Clustern zu maximieren und potenzielle Dateninkonsistenzen zu vermeiden.
Berücksichtigen Sie beim Erstellen der Architektur für Ihre Arbeitslast die allgemeinen Best Practices und Empfehlungen im Well-Architected Framework: Leistungsoptimierung.
Nächste Schritte
- Weitere Informationen:
- Implementieren:
- Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.
Beitragende
Autor: Samantha He | Technical Writer
Weitere Beitragende:
- Dean Hildebrand Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marco Abela | Produktmanager
- Sean Derrington | Group Outbound Product Manager, Speicher