GKE-Umgebung für Filestore-Agent-Volumes einrichten

Filestore-Agent-Volumes lassen sich in Google Kubernetes Engine (GKE) einbinden, um persistenten Dateispeicher mit hoher Dichte und niedriger Latenz für zustandsorientierte KI-Agent-Sandboxes, Entwicklerumgebungen und Multi-Agent-Workflows bereitzustellen.

In diesem Leitfaden werden die Voraussetzungen für die Verwendung von Filestore-Agent-Volumes in GKE beschrieben.

Hinweis

  1. Führen Sie die Ersteinrichtung unter Filestore-Agent-Volumes einrichten aus.
  2. Aktivieren Sie die GKE API:

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Installieren Sie die erforderlichen Komponenten für gcloud:

    gcloud components install kubectl gke-gcloud-auth-plugin
    

GKE-Cluster erstellen

Erstellen Sie einen GKE-Cluster, der mit Ihrem Private Service Connect verbunden ist.

gcloud container clusters create CLUSTER_NAME \
    --region=REGION \
    --project=PROJECT_ID \
    --network=projects/PROJECT_ID/global/networks/VPC_NETWORK \
    --subnetwork=SUBNET_NAME \
    --num-nodes=3 \
    --workload-pool=PROJECT_ID.svc.id.goog\
    --scopes=cloud-platform \
    --enable-agent-sandbox \
    --addons=GcpFilestoreCsiDriver=DISABLED \
    --cluster-version=1.36.0-gke.3302001

Ersetzen Sie Folgendes:

  • CLUSTER_NAME ist der Name des neuen Clusters.
  • REGION: Die Region, in der sich Ihr Volume-Pool befindet, z. B. us-central1.
  • PROJECT_ID: Projekt-ID in Google Cloud .
  • VPC_NETWORK: der Name des PSC-fähigen VPC-Netzwerk.
  • SUBNET_NAME: Name des Subnetzes

Workload Identity Federation für GKE und IAM einrichten

Konfigurieren Sie ein Google-Dienstkonto (GSA) mit Berechtigungen zum Bereitstellen von Filestore-Volumes und binden Sie es an das Kubernetes-Dienstkonto (KSA), das vom CSI-Treiber verwendet wird.

  1. Google-Dienstkonto erstellen:

    gcloud iam service-accounts create filestore-csi-gsa \
        --display-name="Filestore CSI Driver GSA" \
        --project=PROJECT_ID
    
  2. Weisen Sie dem Dienstkonto die Rolle „Cloud Filestore-Bearbeiter“ (roles/file.editor) zu:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:filestore-csi-gsa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/file.editor"
    
  3. Weisen Sie dem Compute Engine-Standarddienstkonto die Rolle „Cloud Filestore-Bearbeiter“ (roles/file.editor) zu:

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/file.editor"
    
  4. Binden Sie das KSA im Namespace gcp-filestore-csi-driver an das GSA:

    gcloud iam service-accounts add-iam-policy-binding \
        filestore-csi-gsa@PROJECT_ID.iam.gserviceaccount.com \
        --role="roles/iam.workloadIdentityUser" \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[gcp-filestore-csi-driver/gcp-filestore-csi-controller-sa]" \
        --project=PROJECT_ID
    

Filestore-CSI-Treiber bereitstellen

  1. Clusteranmeldedaten abrufen:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Klonen Sie das Treiber-Repository und wenden Sie das volumepool-Overlay an:

    git clone https://github.com/kubernetes-sigs/gcp-filestore-csi-driver.git
    cd gcp-filestore-csi-driver
    kubectl apply -k deploy/kubernetes/overlays/volumepool
    
  3. Annotieren Sie das Controller-Dienstkonto mit dem GSA:

    kubectl annotate serviceaccount gcp-filestore-csi-controller-sa \
        --namespace=gcp-filestore-csi-driver \
        --overwrite \
        iam.gke.io/gcp-service-account=filestore-csi-gsa@PROJECT_ID.iam.gserviceaccount.com
    
  4. Prüfen Sie, ob die CSI-Treiber-Pods ausgeführt werden:

    kubectl get pods -n gcp-filestore-csi-driver
    

    Die Ausgabe sieht etwa so aus:

    NAME                             READY   STATUS    RESTARTS   AGE
    gcp-filestore-csi-controller-0   5/5     Running   0          2m
    gcp-filestore-csi-node-abcde     3/3     Running   0          2m
    

Wenden Sie die StorageClass auf Ihren Volumenpool an.

Damit Ihre GKE-Arbeitslasten Volumes aus Ihrem Volume-Pool dynamisch bereitstellen können, wenden Sie eine Kubernetes-StorageClass auf Ihren Cluster an.

Wenn Sie das volume-pool-sc.yaml-Manifest bereits in Filestore-Agent-Volumes einrichten erstellt haben, fahren Sie mit Schritt 2 fort.

  1. Erstellen Sie eine Datei mit dem Namen volume-pool-sc.yaml und der folgenden Konfiguration:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: volume-pool-sc
    provisioner: filestore.csi.storage.gke.io
    parameters:
      volume-pool: "projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/volumePools/<var>VOLUME_POOL_ID</var>"
    mountOptions:
      - vers=3
      - proto=tcp
      - mountproto=tcp
      - port=2049
      - mountport=2050
    volumeBindingMode: Immediate
    reclaimPolicy: Delete
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts.
    • LOCATION: Die Region, in der Ihr Volume-Pool bereitgestellt wird, z. B. us-central1.
    • VOLUME_POOL_ID: Die Kennung Ihres Volume-Pools.
  2. Wenden Sie das Manifest an:

    kubectl apply -f volume-pool-sc.yaml
    
  3. Prüfen Sie, ob StorageClass verfügbar ist:

    kubectl get storageclass volume-pool-sc
    

    Die Ausgabe sieht etwa so aus:

    NAME             PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    volume-pool-sc   filestore.csi.storage.gke.io   Delete          Immediate           true                   1m
    

Nach Abschluss dieser Anleitung ist Ihre GKE-Umgebung bereit für die Unterstützung von Filestore-Agent-Volumes.

Nächste Schritte

Nachdem Sie Ihren GKE-Cluster und Ihre Speicherklasse konfiguriert haben, können Sie zustandsorientierte KI-Agent-Arbeitslasten mit einem der folgenden Orchestrierungsmuster bereitstellen: