Auf dieser Seite wird beschrieben, wie Sie den Cloud Storage FUSE CSI-Treiber für GKE einrichten und für die Verwendung vorbereiten.
So verwenden Sie den CSI-Treiber für Cloud Storage FUSE:
- Cloud Storage-Bucket erstellen
- Treiber aktivieren
- Zugriff auf Ihren Cloud Storage-Bucket konfigurieren
Cloud Storage-Bucket erstellen
Erstellen Sie Ihre Cloud Storage-Buckets, falls noch nicht geschehen. Sie werden diese Bucket als Volumes in Ihrem GKE-Cluster bereitstellen. Zur Leistungssteigerung legen Sie als Standorttyp die Option Region fest und wählen eine Region aus, die mit Ihrem GKE-Cluster übereinstimmt.
CSI-Treiber für Cloud Storage FUSE aktivieren
Führen Sie die folgenden Schritte aus, je nachdem, ob Sie GKE Autopilot- oder Standardcluster verwenden. Für eine vollständig verwaltete Kubernetes-Umgebung empfehlen wir die Verwendung eines Autopilot-Clusters. Informationen zum Auswählen des Modus, der für Ihre Arbeitslasten am besten geeignet ist, finden Sie unter GKE-Betriebsmodus auswählen.
Autopilot
Der CSI-Treiber für Cloud Storage FUSE ist standardmäßig für Autopilot-Cluster aktiviert. Sie können mit Zugriff auf Cloud Storage-Buckets konfigurieren fortfahren.
Standard
Wenn in Ihrem Standardcluster der CSI-Treiber für Cloud Storage FUSE aktiviert ist, fahren Sie mit Zugriff auf Cloud Storage-Buckets konfigurieren fort.
Zum Erstellen eines Standardclusters mit aktiviertem Cloud Storage FUSE CSI-Treiber können Sie den Befehl gcloud container clusters create
verwenden:
gcloud container clusters create CLUSTER_NAME \
--addons GcsFuseCsiDriver \
--cluster-version=VERSION \
--location=LOCATION \
--workload-pool=PROJECT_ID.svc.id.goog
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters.VERSION
: Die GKE-Versionsnummer. Sie müssen mindestens 1.24 auswählen.LOCATION
: die Compute Engine-Region oder -Zone für den Cluster.PROJECT_ID
: Ihre Projekt-ID.
Verwenden Sie den Befehl [gcloud container clusters update
, um den Treiber auf einem vorhandenen Standardcluster zu aktivieren:
gcloud container clusters update CLUSTER_NAME \
--update-addons GcsFuseCsiDriver=ENABLED \
--location=LOCATION
Führen Sie den folgenden Befehl aus, um zu prüfen, ob der CSI-Treiber für Cloud Storage FUSE in Ihrem Cluster aktiviert ist:
gcloud container clusters describe CLUSTER_NAME \
--location=LOCATION \
--project=PROJECT_ID \
--format="value(addonsConfig.gcsFuseCsiDriverConfig.enabled)"
Zugriff auf Cloud Storage-Buckets konfigurieren
Der Cloud Storage FUSE CSI-Treiber verwendet die Workload Identity Federation for GKE, damit Sie detaillierte Berechtigungen für den Zugriff Ihrer GKE-Pods auf in Cloud Storage gespeicherte Daten festlegen können.
Wenn Sie Ihre Cloud Storage-Buckets für Ihren GKE-Cluster zugänglich machen möchten, authentifizieren Sie sich mit der Identitätsföderation von Arbeitslasten für GKE beim Cloud Storage-Bucket, den Sie in Ihrer Pod-Spezifikation bereitstellen möchten:
- Wenn die Identitätsförderung von Arbeitslasten für GKE nicht aktiviert ist, folgen Sie dieser Anleitung, um sie zu aktivieren.
Rufen Sie Anmeldedaten für Ihren Cluster ab:
gcloud container clusters get-credentials CLUSTER_NAME \ --location=LOCATION
Ersetzen Sie Folgendes:
CLUSTER_NAME
: Der Name Ihres Clusters, für den Workload Identity Federation for GKE aktiviert ist.LOCATION
: die Compute Engine-Region oder -Zone für den Cluster.
Erstellen Sie einen Namespace, der für das Kubernetes-Dienstkonto verwendet werden soll. Sie können auch den Namespace
default
oder einen vorhandenen Namespace verwenden.kubectl create namespace NAMESPACE
Ersetzen Sie
NAMESPACE
durch den Namen des Kubernetes-Namespace für das Kubernetes-Dienstkonto.Erstellen Sie ein Kubernetes-ServiceAccount für die Anwendung: Sie können auch ein beliebiges Kubernetes-Dienstkonto in einem beliebigen Namespace verwenden, einschließlich des
default
-Kubernetes-Dienstkontos.kubectl create serviceaccount KSA_NAME \ --namespace NAMESPACE
Ersetzen Sie
KSA_NAME
durch den Namen Ihres Kubernetes-Dienstkontos.Weisen Sie dem Kubernetes-Dienstkonto eine der IAM-Rollen für Cloud Storage zu. Führen Sie die folgenden Schritte aus, je nachdem, ob Sie dem Kubernetes-Dienstkonto nur Zugriff auf einen bestimmten Cloud Storage-Bucket oder globalen Zugriff auf alle Buckets im Projekt gewähren möchten.
Zugriff auf einen bestimmten Bucket
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \ --role "ROLE_NAME"
Ersetzen Sie Folgendes:
BUCKET_NAME
: Name Ihres Cloud Storage-Buckets.PROJECT_NUMBER
: Die numerische Projektnummer Ihres GKE-Clusters. Informationen zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.PROJECT_ID
: Die Projekt-ID Ihres GKE-Clusters.NAMESPACE
: der Name des Kubernetes-Namespace für das Kubernetes-ServiceAccount.KSA_NAME
: der Name des neuen Kubernetes-ServiceAccount.ROLE_NAME
: Die IAM-Rolle, die Ihrem Kubernetes-Dienstkonto zugewiesen werden soll.- Verwenden Sie für schreibgeschützte Arbeitslasten die Rolle "Storage-Objekt-Betrachter" (
roles/storage.objectViewer
). - Verwenden Sie für Lese-/Schreibarbeitslasten die Rolle „Storage-Objekt-Nutzer“ (
roles/storage.objectUser
).
- Verwenden Sie für schreibgeschützte Arbeitslasten die Rolle "Storage-Objekt-Betrachter" (
Globaler Bucket-Zugriff
gcloud projects add-iam-policy-binding GCS_PROJECT \ --member "principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/NAMESPACE/sa/KSA_NAME" \ --role "ROLE_NAME"
Ersetzen Sie Folgendes:
GCS_PROJECT
: die Projekt-ID Ihrer Cloud Storage-Buckets.PROJECT_NUMBER
: Die numerische Projektnummer Ihres GKE-Clusters. Informationen zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.PROJECT_ID
: Die Projekt-ID Ihres GKE-Clusters.NAMESPACE
: der Name des Kubernetes-Namespace für das Kubernetes-ServiceAccount.KSA_NAME
: der Name des neuen Kubernetes-ServiceAccount.ROLE_NAME
: Die IAM-Rolle, die Ihrem Kubernetes-Dienstkonto zugewiesen werden soll.- Verwenden Sie für schreibgeschützte Arbeitslasten die Rolle "Storage-Objekt-Betrachter" (
roles/storage.objectViewer
). - Verwenden Sie für Lese-/Schreibarbeitslasten die Rolle „Storage-Objekt-Nutzer“ (
roles/storage.objectUser
).
- Verwenden Sie für schreibgeschützte Arbeitslasten die Rolle "Storage-Objekt-Betrachter" (
Nächste Schritte
- Informationen zum Bereitstellen von Cloud Storage-Buckets, indem Sie die Buckets inline mit der Pod-Spezifikation angeben.
- Informationen zum Bereitstellen von Cloud Storage-Buckets mit einer PersistentVolume-Ressource
- Weitere Informationen zum Konfigurieren von Anwendungen für die Verwendung der Workload Identity Federation for GKE