CSI-Treiber für Cloud Storage FUSE für GKE


In dieser Übersicht wird der CSI-Treiber Cloud Storage FUSE zum Bereitstellen von Cloud Storage-Buckets als lokale Dateisysteme in Google Kubernetes Engine (GKE) vorgestellt. Diese Funktion ist besonders nützlich für ML-Arbeitslasten, die Trainingsdaten, Modelle und Prüfpunkte in Cloud Storage speichern müssen.

Diese Übersicht richtet sich an Entwickler und Data Scientists, die von ihren Kubernetes-Anwendungen aus auf Trainingsdaten, Inferenzmodellgewichtungen und Prüfpunkte zugreifen oder diese speichern möchten, die in Cloud Storage gespeichert sind.

Machen Sie sich mit Kubernetes, GKE und Cloud Storage vertraut, bevor Sie diese Seite lesen.

Funktionsweise

Der Treiber verwendet den CSI-Standard Container Storage Interface, damit Ihre in Pods ausgeführten Anwendungen nahtlos auf Cloud Storage-Buckets zugreifen können, als wären sie bereitgestellte Dateisysteme. Das bedeutet, dass Sie Ihre Cloud Storage-Buckets ohne komplexe Konfigurations- oder Codeänderungen als persistente und skalierbare Datenquelle für Ihre Kubernetes-Anwendungen behandeln können.

Der CSI-Treiber für Cloud Storage FUSE bietet eine vollständig verwaltete Umgebung, die auf dem Open-Source-CSI-Plug-in Google Cloud Storage FUSE basiert. Mit dem CSI-Treiber können Sie die Kubernetes API verwenden, um bereits vorhandene Cloud Storage-Buckets als Volumes zu nutzen. Ihre Anwendungen können Objekte mithilfe der Semantik des Cloud Storage FUSE-Dateisystems hoch- und herunterladen.

Filesystem in Userspace (FUSE) ist eine Schnittstelle zum Exportieren eines Dateisystems in den Linux-Kernel. Mit Cloud Storage FUSE können Sie Cloud Storage-Buckets als Dateisystem bereitstellen, sodass Anwendungen über gängige Datei-E/A-Vorgänge (z. B. Öffnen, Lesen, Schreiben und Schließen) auf Objekte in einem Bucket zugreifen können, anstatt cloudspezifische APIs zu verwenden.

Der Treiber unterstützt nativ die folgenden Möglichkeiten zum Konfigurieren Ihrer von Cloud Storage gesicherten Volumes:

  • Sitzungsspezifische CSI-Volumes: Sie geben den Cloud Storage-Bucket in Verbindung mit der Pod-Spezifikation an. Verwenden Sie sitzungsspezifische CSI-Volumes, wenn Sie eine optimierte Pod-basierte Oberfläche benötigen, für die keine Vorkenntnisse zu nichtflüchtigen Kubernetes-Volumes erforderlich sind. Informationen zur Verwendung dieser Option finden Sie unter Cloud Storage-Buckets als sitzungsspezifische CSI-Volumes bereitstellen.
  • PersistentVolumes: Sie erstellen mithilfe der statischen Bereitstellung eine PersistentVolume-Ressource, die auf den Cloud Storage-Bucket verweist. Ihr Pod kann dann auf einen PersistentVolumeClaim verweisen, der an dieses PersistentVolume gebunden ist. Verwenden Sie diese Option, wenn Sie bereits mit nichtflüchtigem Speicher vertraut sind und Konsistenz mit Ihren vorhandenen Bereitstellungen wünschen, die auf diesem Ressourcentyp basieren. Informationen zur Verwendung dieser Option finden Sie unter Cloud Storage-Buckets als nichtflüchtige Volumes bereitstellen.

Anwendungsfälle

Der CSI-Treiber für Cloud Storage FUSE eignet sich für folgende Szenarien:

KI und Machine Learning

  • Training: Sie können den CSI-Treiber für Cloud Storage FUSE verwenden, um Trainingsdaten und Prüfpunkt-gespeicherte Modelle zu lesen, die Cloud Storage als "Source of Truth" verwenden. Wenn Sie beispielsweise ein Modell in GKE mit PyTorch, JAX oder TensorFlow trainieren, kann der Treiber Zugriff auf Trainings-Datasets bereitstellen, die in Cloud Storage-Buckets gespeichert sind.
  • Inferenz: Sie können ML-Inferenzmodelle bereitstellen, die Ergebnisse aus Dateien ableiten, die in Cloud Storage gespeichert sind. Sie können CSI von Cloud Storage FUSE verwenden, um in Cloud Storage gespeicherte Modellgewichtungen vorab zu laden. Darüber hinaus können Sie die Funktion paralleler Download verwenden, um das Lesen großer Dateien aus Cloud Storage für Multithread-Downloads zu beschleunigen. Mit dieser Funktion können Sie die Ladezeiten des Modells verbessern, insbesondere für Lesevorgänge mit einer Größe von mehr als 1 GB.

Datenanalyse-Pipelines

Mit dem CSI-Treiber für Cloud Storage FUSE können Sie Datenverarbeitungsaufgaben optimieren, indem Sie Anwendungen den direkten Zugriff auf große Datasets, die in Cloud Storage gespeichert sind, ermöglichen. Ein in GKE ausgeführter Spark-Job könnte beispielsweise den CSI-Treiber verwenden, um in Cloud Storage gespeicherte Daten zu verarbeiten, ohne sie vorher herunterladen zu müssen.

Vorteile

Die Verwendung des CSI-Treibers bietet folgende Vorteile:

  • Einfache Einrichtung: Der CSI-Treiber für Cloud Storage FUSE stellt den Treiber automatisch in Standard- und Autopilot-Clustern bereit und verwaltet sie. Die Verwendung von sitzungsspezifischen CSI-Volumes vereinfacht die Konfiguration und Verwaltung von Volumes. Das liegt daran, dass keine PersistentVolumeClaim- und PersistentVolume-Objekte erforderlich sind.
  • Sicherheit: Der CSI-Treiber für Cloud Storage FUSE benötigt keinen privilegierten Zugriff. Dies minimiert die mit dem privilegierten Zugriff verbundenen Risiken und verbessert den Sicherheitsstatus. Mit der Workload Identity-Föderation für GKE können Sie die Authentifizierung verwalten und so genau steuern, wie Ihre Pods auf Cloud Storage-Objekte zugreifen.
  • Leistung: Der CSI-Treiber für Cloud Storage FUSE verbessert die Leistung durch Features wie eine Sidecar-Datei für optimierte Interaktionen, parallele Downloads für einen schnelleren Datenzugriff sowie Metadaten- und Datei-Caching, um die Leseleistung zu verbessern und die Latenz zu reduzieren. Weitere Informationen zu diesen Funktionen finden Sie unter Optionen und Funktionen zur Leistungsoptimierung.
  • Portabilität und Flexibilität:Mit dem CSI-Treiber für Cloud Storage FUSE können Sie die standardmäßige Dateisystemsemantik verwenden, um Cloud Storage-Buckets bereitzustellen und darauf zuzugreifen. Dadurch erhalten Sie eine vertraute Benutzeroberfläche, die die Portabilität von ML-Arbeitslasten verbessert und die Notwendigkeit umfangreicher Code- oder Anwendungsänderungen entlastet. Der Treiber wird auf allen Beschleunigern unterstützt, die in GKE verfügbar sind, einschließlich GPUs und TPUs. Der CSI-Treiber für Cloud Storage FUSE unterstützt die Zugriffsmodi ReadWriteMany, ReadOnlyMany und ReadWriteOnce. Sie können Cloud Storage FUSE-Volumes in Init-Containern nutzen.
  • Verwaltungsmöglichkeiten: Mit dem Treiber können Sie Cloud Storage FUSE allgemein ausführen, ohne ihn installieren oder verwalten zu müssen. Sie können auch Messwertstatistiken für Cloud Storage FUSE ansehen, einschließlich Dateisystem, Cloud Storage und Datei-Cache-Nutzung.

Optionen und Funktionen zur Leistungsoptimierung

Der CSI-Treiber für Cloud Storage FUSE bietet verschiedene Optionen zur Leistungsoptimierung und -funktionen, mit denen Sie den Zugriff Ihrer Pods auf Daten optimieren können, die in Cloud Storage-Buckets gespeichert sind.

Wenn Sie beispielsweise das Datei-Caching aktivieren und die Nebenläufigkeit von Anfragen anpassen, können Sie die Zeit zum Laden der Trainingsdaten erheblich reduzieren, was zu kürzeren Trainingszeiten führt.

  • Native Sidecar-Datei: Der CSI-Treiber für Cloud Storage FUSE hängt einen Sidecar-Container in Ihren Pods an, um Interaktionen mit Cloud Storage zu verwalten. Die Sidecar-Datei übernimmt die Bereitstellung und Interaktion mit Cloud Storage, sodass Ihre Anwendungen nahtlos auf Daten zugreifen können. Sie können die Leistung optimieren, indem Sie Ressourcen wie CPU und Arbeitsspeicher für den Sidecar-Container konfigurieren oder Einstellungen für das Caching und die Zwischenspeicherung anpassen. Der CSI-Treiber-Sidecar-Container von Cloud Storage FUSE und Istio können in Ihrem Pod gleichzeitig vorhanden sein und gleichzeitig ausgeführt werden.

  • Paralleler Download: Ab GKE-Version 1.30.3-gke.1571000 und Cloud Storage FUSE v.2.4.0 mit aktiviertem Datei-Cache können Sie die Funktion Paralleler Download verwenden, um das Lesen großer Dateien aus Cloud Storage für Multithread-Downloads zu beschleunigen. Mit dieser Funktion können Sie die Ladezeiten des Modells verbessern, insbesondere bei Lesevorgängen über 1 GB (z. B. bis zu doppelt so schnell beim Laden von Llama 2 70B).

  • Unterstützung für das Metadaten-Caching: Der CSI-Treiber für Cloud Storage FUSE verbessert die Leistung, indem Dateimetadaten wie Größe und Änderungszeit im Cache gespeichert werden. Der CSI-Treiber aktiviert diesen Statistik-Cache standardmäßig und reduziert die Latenz, da Informationen lokal gespeichert werden, anstatt sie wiederholt von Cloud Storage anzufordern. Sie können die maximale Größe und die Dauer konfigurieren, für die die Daten im Cache bleiben. Durch eine Feinabstimmung des Metadaten-Cache können Sie API-Aufrufe an Google Cloud Storage reduzieren und die Anwendungsleistung und -effizienz durch Minimierung des Netzwerktraffics und der Latenz verbessern.

  • Unterstützung für das Datei-Caching: Sie können den CSI-Treiber für Cloud Storage FUSE mit Datei-Caching verwenden, um die Leseleistung von Anwendungen zu verbessern, die kleine Dateien aus Cloud Storage-Buckets verarbeiten. Die Datei-Cache-Funktion von Cloud Storage FUSE ist ein clientbasierter Lese-Cache, mit dem wiederholte Dateilesevorgänge aus dem Cache-Speicher Ihrer Wahl schneller verarbeitet werden können. Je nach Ihren Anforderungen an das Preis-Leistungs-Verhältnis können Sie aus einer Reihe von Speicheroptionen für den Lese-Cache wählen, darunter lokale SSDs, nichtflüchtiger Speicher und RAM-Disk.

Best Practices für die Leistungsoptimierung finden Sie unter CSI-Treiber für Cloud Storage FUSE optimieren für GKE-Leistung.

Beschränkungen

Für den CSI-Treiber gelten folgende Einschränkungen:

Voraussetzungen

Damit Sie den CSI-Treiber für Cloud Storage FUSE verwenden können, müssen Ihre Cluster die folgenden GKE-Versionsanforderungen erfüllen:

Wenn Sie bestimmte Funktionen für den CSI-Treiber für Cloud Storage FUSE verwenden möchten, müssen Sie außerdem die folgenden Anforderungen erfüllen:

Feature GKE-Versionsanforderungen
Privates Image für Sidecar-Container, benutzerdefiniertes Zwischenspeicher-Volume und Anfragen für Sidecar-Container-Ressourcen 1.27.10-gke.1055000, 1.28.6-gke.1369000, 1.29.1-gke.1575000 oder höher.
Datei-Cache, Volume-Attribute 1.27.12-gke.1190000, 1.28.8-gke.1175000, 1.29.3-gke.1093000 oder höher.
Cloud Storage FUSE-Volumes in Init-Containern 1.29.3-gke.1093000 oder höher, wobei alle Knoten die GKE-Version 1.29 oder höher verwenden
Paralleler Download 1.29.6-gke.1254000, 1.30.2-gke.1394000 oder höher.
Cloud Storage FUSE-Messwerte 1.31.1-gke.1621000 oder höher.
Metadaten-Vorabruf 1.32.1-gke.1357001 oder höher
Kernel-Lesevorgang konfigurieren 1.32.2-gke.1297001 oder höher.

Nächste Schritte