I volumi dell'agente Filestore si integrano con Google Kubernetes Engine (GKE) per fornire spazio di archiviazione file permanente a bassa latenza e ad alta densità per sandbox di agenti AI stateful, ambienti di sviluppo e flussi di lavoro multiagente.
Questa guida illustra i prerequisiti necessari per utilizzare i volumi dell'agente Filestore su GKE.
Prima di iniziare
- Completa la configurazione iniziale in Configura i volumi dell'agente Filestore.
Abilita l'API GKE:
gcloud services enable container.googleapis.com \ --project=PROJECT_IDInstalla i componenti richiesti per
gcloud:gcloud components install kubectl gke-gcloud-auth-plugin
Crea un cluster GKE
Crea un cluster GKE connesso a Private Service Connect.
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
Sostituisci quanto segue:
CLUSTER_NAME: il nome del nuovo cluster.REGION: la regione in cui si trova il pool di volumi, ad esempious-central1.PROJECT_ID: il tuo ID progetto Google Cloud .VPC_NETWORK: il nome della tua rete VPC abilitata per PSC.SUBNET_NAME: il nome della subnet.
Configura la federazione delle identità per i workload per GKE e IAM
Configura un service account Google (GSA) con le autorizzazioni per eseguire il provisioning dei volumi Filestore e associa questo service account al service account Kubernetes (KSA) utilizzato dal driver CSI.
Crea il service account Google:
gcloud iam service-accounts create filestore-csi-gsa \ --display-name="Filestore CSI Driver GSA" \ --project=PROJECT_IDConcedi il ruolo Editor Cloud Filestore (
roles/file.editor) al service account:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:filestore-csi-gsa@PROJECT_ID.iam.iam.gserviceaccount.com" \ --role="roles/file.editor"Concedi il ruolo Editor Cloud Filestore (
roles/file.editor) al account di servizio predefinito di Compute Engine:PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${PROJECT_NUMBER}-compute@developer.iam.gserviceaccount.com" \ --role="roles/file.editor"Associa il KSA nello spazio dei nomi
gcp-filestore-csi-driveral GSA:gcloud iam service-accounts add-iam-policy-binding \ filestore-csi-gsa@PROJECT_ID.iam.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
Esegui il deployment del driver CSI Filestore
Recupera le credenziali del cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=REGION \ --project=PROJECT_IDClona il repository del driver e applica l'overlay
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
Annota il account di servizio del controller con il 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.iam.gserviceaccount.comVerifica che i pod del driver CSI siano in esecuzione:
kubectl get pods -n gcp-filestore-csi-driver
L'output è simile al seguente:
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
Applica il StorageClass al tuo pool di volumi
Per consentire ai tuoi workload GKE di eseguire il provisioning dinamico dei volumi dal pool di volumi, applica un StorageClass Kubernetes al tuo cluster.
Se hai già creato il manifest volume-pool-sc.yaml in
Configura i volumi dell'agente Filestore,
vai al passaggio 2.
Crea un file denominato
volume-pool-sc.yamlcon la seguente configurazione:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: volume-pool-sc provisioner: filestore.csi.storage.gke.io volumeBindingMode: Immediate reclaimPolicy: Delete allowVolumeExpansion: true parameters: volume-pool: "projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/volumePools/<var>VOLUME_POOL_ID</var>"Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.LOCATION: la regione in cui viene deployato il pool di volumi, ad esempious-central1.VOLUME_POOL_ID: l'identificatore del pool di volumi.
Applica il manifest:
kubectl apply -f volume-pool-sc.yaml
Verifica che
StorageClasssia disponibile:kubectl get storageclass volume-pool-sc
L'output è simile al seguente:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE volume-pool-sc filestore.csi.storage.gke.io Delete Immediate true 1m
Dopo aver completato questa guida, il tuo ambiente GKE è pronto per supportare i volumi dell'agente Filestore.
Passaggi successivi
Con il cluster GKE e la classe di archiviazione configurati, puoi eseguire il deployment di workload di agenti AI stateful utilizzando uno dei seguenti pattern di orchestrazione:
- Esegui il deployment dei carichi di lavoro utilizzando GKE Agent Substrate.
- Esegui il deployment dei carichi di lavoro utilizzando GKE Agent Sandbox.
- Configura l'associazione tardiva dello spazio di archiviazione dinamica.
- Esegui il deployment di carichi di lavoro GKE autogestiti.