Kurzanleitung: Auf Cloud Storage-Buckets mit dem FUSE-CSI-Treiber zugreifen

In dieser Kurzanleitung erfahren Sie, wie Sie von einer Google Kubernetes Engine-Anwendung (GKE) aus auf Cloud Storage-Buckets zugreifen können, als wären sie lokale Dateisysteme. In dieser Kurzanleitung finden Sie ein Beispiel für ein Kubernetes-Manifest zum Erstellen eines Pods, in dem der Bucket bereitgestellt wird. Außerdem wird gezeigt, wie Sie über das Dateisystem des Pods auf den Inhalt des Buckets zugreifen.

Diese Seite richtet sich an Entwickler, Speicherexperten und alle anderen, die Cloud-Ressourcen bereitstellen und verwalten und Arbeitslasten bereitstellen möchten. Weitere Informationen zu gängigen Rollen finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Machen Sie sich vor dem Lesen dieser Seite mit Kubernetes und dem CSI-Treiber für Cloud Storage FUSE vertraut.

In dieser Kurzanleitung wird der GKE Autopilot-Modus verwendet. Wenn Sie den Standardmodus verwenden möchten, lesen Sie den Abschnitt CSI-Treiber für Cloud Storage FUSE für GKE einrichten.

Hinweis

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the GKE and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  4. Achten Sie darauf, dass Sie die folgenden Rollen für das Projekt haben: Kubernetes Engine-Administrator, Storage-Administrator, Dienstkontonutzer

    Rollen prüfen

    1. Rufen Sie in der Cloud de Confiance Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Suchen Sie in der Spalte Hauptkonto nach allen Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Fragen Sie Ihren Administrator, zu welchen Gruppen Sie gehören.

    4. Prüfen Sie in allen Zeilen, in denen Sie angegeben oder enthalten sind, die Spalte Rolle, um zu sehen, ob die Liste der Rollen die erforderlichen Rollen enthält.

    Rollen zuweisen

    1. Rufen Sie in der Cloud de Confiance Console die Seite IAM auf.

      IAM aufrufen
    2. Wählen Sie das Projekt aus.
    3. Klicken Sie auf Zugriffsrechte erteilen.
    4. Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Bei einem Nutzer in einem Mitarbeiteridentitätspool ist dies in der Regel dessen Kennung. Weitere Informationen erhalten Sie unter Mitarbeiteridentitätspool-Nutzer in IAM-Richtlinien darstellen oder von Ihrem Administrator.

    5. Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
    6. Klicken Sie auf Weitere Rolle hinzufügen, wenn Sie weitere Rollen zuweisen möchten.
    7. Klicken Sie auf Speichern.

Erstellen Sie einen GKE Autopilot-Cluster

  1. Rufen Sie in der Cloud de Confiance Console die Seite Autopilot-Cluster erstellen auf.

    Zur Seite „Autopilot-Cluster erstellen“

  2. Führen Sie unter Clustergrundlagen die folgenden Schritte aus:

    1. Geben Sie im Feld Name einen Namen für den Cluster ein.

    2. Übernehmen Sie für die übrigen Einstellungen jeweils die Standardeinstellung.

  3. Klicken Sie auf Erstellen, um den Cluster zu erstellen.

Cloud Storage-Bucket erstellen

  1. Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie auf Erstellen.

  3. Führen Sie auf der Seite Bucket erstellen im Abschnitt Einstieg die folgenden Schritte aus:

    1. Geben Sie einen global eindeutigen Namen für den Bucket ein, der den Anforderungen für Bucket-Namen entspricht.

    2. Übernehmen Sie für die übrigen Einstellungen jeweils die Standardeinstellung.

  4. Klicken Sie auf Erstellen, um den Bucket zu erstellen.

Objekte in den Cloud Storage-Bucket hochladen

  1. Wechseln Sie in der Cloud de Confiance Console unter „Cloud Storage“ zur Seite Buckets.

    Buckets aufrufen

  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets, den Sie gerade erstellt haben.

  3. Führen Sie im Tab Objekte für den Bucket einen der folgenden Schritte aus:

    • Ziehen Sie Dateien von Ihrem Desktop oder Dateimanager in den Hauptbereich der Cloud de Confiance Console.

    • Klicken Sie auf die Schaltfläche Upload Files (Dateien hochladen). Wählen Sie im angezeigten Dialogfeld die Dateien aus, die Sie hochladen möchten, und klicken Sie auf Öffnen.

Zugriff auf Ihren Cloud Storage-Bucket konfigurieren

Folgen Sie der Anleitung unter Zugriff auf Cloud Storage-Buckets konfigurieren, um sicherzustellen, dass Ihr GKE-Cluster auf Ihren Cloud Storage-Bucket zugreifen kann.

Cloud Shell einrichten

Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.

Cloud Shell aktivieren

Eine Cloud Shell-Sitzung wird gestartet und eine Eingabeaufforderung wird angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.

Pod bereitstellen, um mit FUSE auf Ihren Cloud Storage-Bucket zuzugreifen

  1. Legen Sie das Standardprojekt fest, in dem Sie das Pod bereitstellen möchten:

    gcloud config set project PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  2. Erstellen Sie das Pod-Manifest mit dem folgenden Inhalt und wenden Sie es an:

    cat << EOF | kubectl apply -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: gcsfuse-test
      namespace: default
      annotations:
        gke-gcsfuse/volumes: "true"
    spec:
      terminationGracePeriodSeconds: 60
      containers:
      - image: busybox
        name: busybox
        command: ["sleep"]
        args: ["infinity"]
        volumeMounts:
        - name: gcsfuse-test
          mountPath: /data
          readOnly: true
      serviceAccountName: default
      volumes:
      - name: gcsfuse-test
        csi:
          driver: gcsfuse.csi.storage.gke.io
          volumeAttributes:
            bucketName: BUCKET_NAME
            mountOptions: "implicit-dirs"
    EOF
    
    • Ersetzen Sie BUCKET_NAME durch den Namen des Cloud Storage-Buckets.
    • Wenn Sie einen anderen Namespace oder ein anderes Dienstkonto verwenden, ersetzen Sie die Felder namespace und serviceAccountName entsprechend.

    Der Inhalt dieses Manifests startet einen Pod mit dem Namen gcsfuse-test, der den Bucket auf seinem Pfad /data bereitstellt.

  3. Prüfen Sie, ob der Pod ausgeführt wird:

    kubectl get pod gcsfuse-test
    

    Die Ausgabe sieht etwa so aus:

    NAME           READY   STATUS    RESTARTS   AGE
    gcsfuse-test   2/2     Running   0          12s
    

    Der Cloud Storage FUSE-CSI-Treiber hängt einen Sidecar-Container an Ihren Pod an, um die Interaktionen mit Cloud Storage zu verwalten.

    Wenn der Pod nicht ausgeführt wird, können Sie die Ereignislogs abrufen, um das Problem zu diagnostizieren. Führen Sie dazu den Befehl kubectl describe pod gcsfuse-test aus. Weitere Informationen finden Sie auf GitHub unter Fehlerbehebung.

  4. Nachdem der Pod ausgeführt wird, können Sie sein Dateisystem untersuchen:

    kubectl exec -it gcsfuse-test -- find /data
    

Bereinigen

Wenn Sie vermeiden möchten, dass Ihrem Cloud de Confiance by S3NS Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden, löschen Sie den Pod:

kubectl delete pod gcsfuse-test

Nächste Schritte