Les volumes de l'agent Filestore s'intègrent à Google Kubernetes Engine (GKE) pour fournir un stockage de fichiers persistant à haute densité et à faible latence pour les bacs à sable d'agents d'IA avec état, les environnements de développement et les workflows multi-agents.
Ce guide vous présente les prérequis nécessaires pour utiliser les volumes d'agent Filestore sur GKE.
Avant de commencer
- Effectuez la configuration initiale dans Configurer des volumes d'agent Filestore.
Activez l'API GKE :
gcloud services enable container.googleapis.com \ --project=PROJECT_IDInstallez les composants requis pour
gcloud:gcloud components install kubectl gke-gcloud-auth-plugin
Créer un cluster GKE
Créez un cluster GKE connecté à votre 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
Remplacez les éléments suivants :
CLUSTER_NAME: nom du nouveau clusterREGION: région où réside votre pool de volumes, par exempleus-central1.PROJECT_ID: ID de votre projet Google Cloud .VPC_NETWORK: nom de votre réseau VPC compatible avec PSC.SUBNET_NAME: nom du sous-réseau.
Configurer la fédération d'identité de charge de travail pour GKE et IAM
Configurez un compte de service Google (GSA) avec les autorisations nécessaires pour provisionner des volumes Filestore et associez-le au compte de service Kubernetes (KSA) utilisé par le pilote CSI.
Créez le compte de service Google :
gcloud iam service-accounts create filestore-csi-gsa \ --display-name="Filestore CSI Driver GSA" \ --project=PROJECT_IDAttribuez le rôle Éditeur Cloud Filestore (
roles/file.editor) au compte de service :gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:filestore-csi-gsa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/file.editor"Attribuez le rôle Éditeur Cloud Filestore (
roles/file.editor) au compte de service Compute Engine par défaut :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"Associez le KSA dans l'espace de noms
gcp-filestore-csi-driverau 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
Déployer le pilote CSI Filestore
Obtenez les identifiants du cluster :
gcloud container clusters get-credentials CLUSTER_NAME \ --region=REGION \ --project=PROJECT_IDClonez le dépôt du pilote et appliquez la superposition
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
Annotez le compte de service du contrôleur avec le CSA :
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.comVérifiez que les pods du pilote CSI sont en cours d'exécution :
kubectl get pods -n gcp-filestore-csi-driver
Le résultat ressemble à ce qui suit :
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
Appliquer StorageClass à votre pool de volume
Pour permettre à vos charges de travail GKE de provisionner dynamiquement des volumes à partir de votre pool de volumes, appliquez un StorageClass Kubernetes à votre cluster.
Si vous avez déjà créé le fichier manifeste volume-pool-sc.yaml dans Configurer les volumes de l'agent Filestore, passez à l'étape 2.
Créez un fichier nommé
volume-pool-sc.yamlavec la configuration suivante :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: DeleteRemplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud.LOCATION: région dans laquelle votre pool de volumes est déployé, par exempleus-central1.VOLUME_POOL_ID: identifiant de votre pool de volumes.
Appliquez le fichier manifeste :
kubectl apply -f volume-pool-sc.yaml
Vérifiez que
StorageClassest disponible :kubectl get storageclass volume-pool-sc
Le résultat ressemble à ce qui suit :
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE volume-pool-sc filestore.csi.storage.gke.io Delete Immediate true 1m
Une fois ce guide terminé, votre environnement GKE est prêt à prendre en charge les volumes de l'agent Filestore.
Étapes suivantes
Une fois votre cluster GKE et votre classe de stockage configurés, vous pouvez déployer des charges de travail d'agents d'IA avec état à l'aide de l'un des modèles d'orchestration suivants :
- Déployez des charges de travail à l'aide de GKE Agent Substrate.
- Déployez des charges de travail à l'aide de GKE Agent Sandbox.
- Configurez la liaison tardive du stockage dynamique.
- Déployez des charges de travail GKE autogérées.