Filestore 智能体存储卷与 Google Kubernetes Engine (GKE) 集成,可为有状态 AI 智能体沙盒、开发环境和 Agentic Workflows 提供高密度、低延迟的永久性文件存储。
本指南将引导您了解在 GKE 上使用 Filestore 代理卷所需的前提条件。
准备工作
- 完成设置 Filestore 代理卷中的初始设置。
启用 GKE API:
gcloud services enable container.googleapis.com \ --project=PROJECT_ID安装
gcloud所需的组件:gcloud components install kubectl gke-gcloud-auth-plugin
创建 GKE 集群
创建一个连接到 Private Service Connect 的 GKE 集群。
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.s3ns.svc.id.goog \
--scopes=cloud-platform \
--enable-agent-sandbox \
--addons=GcpFilestoreCsiDriver=DISABLED \
--cluster-version=1.36.0-gke.3302001
替换以下内容:
CLUSTER_NAME:新集群的名称。REGION:卷池所在的区域,例如us-central1。PROJECT_ID:您的 Cloud de Confiance by S3NS 项目 ID。VPC_NETWORK:已启用 PSC 的 VPC 网络的名称。SUBNET_NAME:子网的名称。
设置 Workload Identity Federation for GKE 和 IAM
向 CSI 驱动程序使用的 Kubernetes ServiceAccount 和 Compute Engine 默认服务帐号授予预配 Filestore 卷的权限:
获取您的项目编号:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"将
PROJECT_ID替换为您的项目 ID。向
gcp-filestore-csi-driver命名空间中的 Kubernetes ServiceAccount (gcp-filestore-csi-controller-sa) 授予项目的 Cloud Filestore Editor 角色 (roles/file.editor):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.s3ns.svc.id.goog/subject/ns/gcp-filestore-csi-driver/sa/gcp-filestore-csi-controller-sa" \ --role="roles/file.editor" \ --condition=None替换以下内容:
PROJECT_ID:您的 Cloud de Confiance by S3NS 项目 ID。PROJECT_NUMBER:您的 Cloud de Confiance by S3NS 项目编号。
向 Compute Engine 默认服务帐号授予项目的 Cloud Filestore Editor 角色 (
roles/file.editor):gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.s3ns-system.iam.gserviceaccount.com" \ --role="roles/file.editor" \ --condition=None
部署 Filestore CSI 驱动程序
获取集群凭据:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=REGION \ --project=PROJECT_ID克隆驱动程序代码库并应用
volumepool叠加层:git clone https://github.com/kubernetes-sigs/gcp-filestore-csi-driver.git cd gcp-filestore-csi-driver kubectl apply -k deploy/kubernetes/overlays/volumepool
验证 CSI 驱动程序 pod 是否正在运行:
kubectl get pods -n gcp-filestore-csi-driver
输出类似于以下内容:
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
为卷池应用 StorageClass
如需允许 GKE 工作负载从卷池动态预配卷,请向集群应用 Kubernetes StorageClass。
如果您已在
设置 Filestore 代理卷中创建 volume-pool-sc.yaml 清单,
请跳至第 2 步。
创建一个名为
volume-pool-sc.yaml的文件,其中包含以下配置: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替换以下内容:
PROJECT_ID:您的 Cloud de Confiance 项目的 ID。LOCATION:卷池部署到的区域,例如us-central1。VOLUME_POOL_ID:卷池的标识符。
应用清单:
kubectl apply -f volume-pool-sc.yaml
验证
StorageClass是否可用:kubectl get storageclass volume-pool-sc
输出类似于以下内容:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE volume-pool-sc filestore.csi.storage.gke.io Delete Immediate true 1m
完成本指南后,您的 GKE 环境即可支持 Filestore 代理卷。
后续步骤
配置 GKE 集群和存储类别后,您可以使用以下任何一种编排模式部署有状态 AI 智能体工作负载: