In diesem Leitfaden erfahren Sie, wie Sie Ressourcen für den Sidecar-Container des Cloud Storage FUSE CSI-Treibers konfigurieren, einschließlich der Einrichtung eines privaten Images, eines benutzerdefinierten Schreibpuffers und eines benutzerdefinierten Lesecache-Volumes. Normalerweise müssen Sie diese Einstellungen nicht ändern.
Der Cloud Storage FUSE CSI-Treiber verwendet einen anpassbaren Sidecar-Container, um Cloud Storage-Buckets effizient bereitzustellen und darauf zuzugreifen. Durch die Konfiguration des Sidecars können Sie die Anwendungsleistung und Ressourcennutzung optimieren. Dies kann zu einem schnelleren Datenzugriff, kürzeren Verarbeitungszeiten und einem potenziell geringeren Gesamtressourcenverbrauch für Ihre Anwendung führen.
Dieser Leitfaden richtet sich an Entwickler, Administratoren und Architekten, die die Leistung, Sicherheit und Effizienz ihrer Anwendungen optimieren möchten, die mit GKE interagieren.
Machen Sie sich vor dem Lesen dieser Seite mit den Grundlagen von Cloud-Speicher, Kubernetes und Containern vertraut.
So funktioniert der Sidecar-Container
Der Cloud Storage FUSE CSI-Treiber verwendet einen Sidecar-Container, um Cloud Storage-Buckets bereitzustellen und sie für Kubernetes-Anwendungen als lokale Dateisysteme zugänglich zu machen. Dieser Sidecar-Container mit dem Namen gke-gcsfuse-sidecar
wird zusammen mit dem Arbeitslastcontainer im selben Pod ausgeführt. Wenn der Treiber die Anmerkung gke-gcsfuse/volumes: "true"
in einer Pod-Spezifikation erkennt, wird der Sidecar-Container automatisch eingefügt. Dieser Ansatz mit Sidecar-Containern trägt dazu bei, die Sicherheit zu gewährleisten und Ressourcen effektiv zu verwalten.
Der Sidecar-Container übernimmt die Komplexität des Bereitstellens der Cloud Storage-Buckets und stellt den Anwendungen Dateisystemzugriff zur Verfügung, ohne dass Sie die Cloud Storage FUSE-Laufzeit direkt verwalten müssen. Sie können Ressourcenlimits für den Sidecar-Container mit Anmerkungen wie gke-gcsfuse/cpu-limit
und gke-gcsfuse/memory-limit
konfigurieren. Das Sidecar-Container-Modell sorgt außerdem dafür, dass die Cloud Storage FUSE-Instanz an den Lebenszyklus der Arbeitslast gebunden ist, sodass keine Ressourcen unnötig verbraucht werden. Das bedeutet, dass der Sidecar-Container automatisch beendet wird, wenn die Arbeitslastcontainer beendet werden, insbesondere bei Job-Arbeitslasten oder Pods mit einer RestartPolicy
von Never
.
Istio-Kompatibilität
Der Sidecar-Container des Cloud Storage FUSE CSI-Treibers und Istio können nebeneinander existieren und gleichzeitig in Ihrem Pod ausgeführt werden. Der Sidecar-Proxy von Istio verwaltet den Netzwerkverkehr, während der CSI-Sidecar den Speicherzugriff optimiert. So können Ihre Anwendungen effizient mit Google Cloud Storage interagieren und dabei von einer verbesserten Leistung und Beobachtbarkeit profitieren.
Benutzerdefinierten Schreib-Zwischenspeicher konfigurieren
Cloud Storage FUSE stellt Schreibvorgänge in einem lokalen Verzeichnis bereit und lädt sie dann bei close
- oder fsync
-Vorgängen in Cloud Storage hoch. Die Schreibpufferung ist standardmäßig nicht aktiviert.
In diesem Abschnitt wird beschrieben, wie Sie ein benutzerdefiniertes Zwischenspeicher-Volume für die Schreibvorgangzwischenspeicherung in Cloud Storage FUSE konfigurieren. Dieses Szenario kann zutreffen, wenn Sie das Standard-emptyDir
-Volume für Cloud Storage FUSE ersetzen müssen, um die Dateien bei Schreibvorgängen zu steuern. Das ist nützlich, wenn Sie Dateien mit mehr als 10 GiB in Autopilot-Clustern schreiben müssen.
Sie können jeden vom Cloud Storage FUSE CSI-Treiber unterstützten Speichertyp für das Datei-Caching angeben, z. B. eine lokale SSD, einen Persistent Disk-basierten Speicher und ein RAM-Laufwerk (Speicher). GKE verwendet das angegebene Volume für die Zwischenspeicherung von Schreibvorgängen in Dateien. Weitere Informationen zu diesen Optionen finden Sie unter Speicher für die Sicherung des Dateicaches auswählen.
Wenn Sie das benutzerdefinierte Zwischenspeicher-Volume verwenden möchten, müssen Sie fsGroup
ungleich null angeben.
Im folgenden Beispiel wird gezeigt, wie Sie einen vordefinierten PersistentVolumeClaim als Puffervolume verwenden können:
apiVersion: v1
kind: Pod
metadata:
annotations:
gke-gcsfuse/volumes: "true"
spec:
securityContext:
fsGroup: FS_GROUP
containers:
...
volumes:
- name: gke-gcsfuse-buffer
persistentVolumeClaim:
claimName: BUFFER_VOLUME_PVC
Ersetzen Sie Folgendes:
- FS_GROUP: die fsGroup-ID.
- BUFFER_VOLUME_PVC ist der Name des vordefinierten PVC.
Benutzerdefiniertes Lese-Cache-Volume konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie ein benutzerdefiniertes Cache-Volume für das Lese-Caching in Cloud Storage FUSE konfigurieren.
Dieses Szenario kann zutreffen, wenn Sie das Standard-emptyDir
-Volume für Cloud Storage FUSE ersetzen müssen, um die Dateien bei Lesevorgängen im Cache zu speichern. Sie können jeden von GKE unterstützten Speichertyp angeben, z. B. einen PersistentVolumeClaim. GKE verwendet dann das angegebene Volume für das Datei-Caching. Das ist nützlich, wenn Sie Dateien mit einer Größe von mehr als 10 GiB in Autopilot-Clustern im Cache speichern möchten. Wenn Sie das benutzerdefinierte Cache-Volume verwenden möchten, müssen Sie fsGroup
ungleich null angeben.
Im folgenden Beispiel wird gezeigt, wie Sie einen vordefinierten PersistentVolumeClaim als Cache-Volume verwenden können:
apiVersion: v1
kind: Pod
metadata:
annotations:
gke-gcsfuse/volumes: "true"
spec:
securityContext:
fsGroup: FS_GROUP
containers:
...
volumes:
- name: gke-gcsfuse-cache
persistentVolumeClaim:
claimName: CACHE_VOLUME_PVC
Ersetzen Sie Folgendes:
- FS_GROUP: die
fsGroup
-ID. - CACHE_VOLUME_PVC: Der vordefinierte Name des PersistentVolumeClaim.
Privates Image für den Sidecar-Container konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie das Sidecar-Container-Image verwenden, wenn Sie es in einer privaten Container-Registry hosten. Dieses Szenario kann zutreffen, wenn Sie aus Sicherheitsgründen private Knoten verwenden müssen.
So konfigurieren und verwenden Sie das private Sidecar-Container-Image:
- In dieser GKE-Kompatibilitätstabelle finden Sie ein kompatibles öffentliches Sidecar-Container-Image.
- Rufen Sie es in Ihrer lokalen Umgebung ab und übertragen Sie es in Ihre private Container Registry.
Geben Sie im Manifest einen Container mit dem Namen
gke-gcsfuse-sidecar
an, der nur das Feld „image“ enthält. GKE verwendet das angegebene Sidecar-Container-Image, um die Einschleusung des Sidecar-Containers vorzubereiten.Hier ein Beispiel:
apiVersion: v1 kind: Pod metadata: annotations: gke-gcsfuse/volumes: "true" spec: containers: - name: gke-gcsfuse-sidecar image: PRIVATE_REGISTRY/gcs-fuse-csi-driver-sidecar-mounter:PRIVATE_IMAGE_TAG - name: main # your main workload container.
Ersetzen Sie dabei Folgendes:
PRIVATE_REGISTRY
: Ihre private Containerregistrierung.PRIVATE_IMAGE_TAG
: durch Ihr privates Sidecar-Container-Image-Tag.
Nächste Schritte
- Informationen zum Optimieren der Leistung des CSI-Treibers für Cloud Storage FUSE
- Weitere Beispiele für die Verwendung des CSI-Treibers auf GitHub
- Weitere Informationen zu Cloud Storage FUSE