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
- Führen Sie die Ersteinrichtung unter Filestore-Agent-Volumes einrichten aus.
Aktivieren Sie die GKE API:
gcloud services enable container.googleapis.com \ --project=PROJECT_IDInstallieren 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_NAMEist 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.
Google-Dienstkonto erstellen:
gcloud iam service-accounts create filestore-csi-gsa \ --display-name="Filestore CSI Driver GSA" \ --project=PROJECT_IDWeisen 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"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"Binden Sie das KSA im Namespace
gcp-filestore-csi-driveran 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
Clusteranmeldedaten abrufen:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=REGION \ --project=PROJECT_IDKlonen 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
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.comPrü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.
Erstellen Sie eine Datei mit dem Namen
volume-pool-sc.yamlund 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: DeleteErsetzen 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.
Wenden Sie das Manifest an:
kubectl apply -f volume-pool-sc.yaml
Prüfen Sie, ob
StorageClassverfü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:
- Arbeitslasten mit GKE Agent Substrate bereitstellen
- Arbeitslasten mit GKE Agent Sandbox bereitstellen
- Konfigurieren Sie die späte Bindung von dynamischem Speicher.
- Stellen Sie selbstverwaltete GKE-Arbeitslasten bereit.