Configurer l'environnement GKE pour les volumes de l'agent Filestore

Les volumes d'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 IA avec état, les environnements de développement et les workflows agentiques multi-agents.

Ce guide vous explique les prérequis nécessaires pour utiliser les volumes d'agent Filestore sur GKE.

Avant de commencer

  1. Effectuez la configuration initiale dans Configurer les volumes d'agent Filestore.
  2. Activez l'API GKE :

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Installez 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.s3ns.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 cluster
  • REGION : région où réside votre pool de volumes, par exemple us-central1
  • PROJECT_ID: ID de votre Cloud de Confiance by S3NS projet
  • 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

Accordez au compte de service Kubernetes utilisé par le pilote CSI et au compte de service Compute Engine par défaut les autorisations nécessaires pour provisionner des volumes Filestore :

  1. Obtenez le numéro de votre projet :

    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"
    

    Remplacez PROJECT_ID par l'ID de votre projet.

  2. Attribuez le rôle Éditeur Cloud Filestore (roles/file.editor) sur le projet au compte de service Kubernetes (gcp-filestore-csi-controller-sa) dans l'espace de noms gcp-filestore-csi-driver :

    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
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID de votre Cloud de Confiance by S3NS projet
    • PROJECT_NUMBER: numéro de votre Cloud de Confiance by S3NS projet
  3. Attribuez le rôle Éditeur Cloud Filestore (roles/file.editor) sur le projet au compte de service Compute Engine par défaut :

    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
    

Déployer le pilote CSI Filestore

  1. Obtenez les identifiants du cluster :

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Clonez 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
    
  3. Vé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 la StorageClass à votre pool de volumes

Pour permettre à vos charges de travail GKE de provisionner dynamiquement des volumes à partir de votre pool de volumes, appliquez une StorageClass Kubernetes à votre cluster.

Si vous avez déjà créé le fichier manifeste volume-pool-sc.yaml dans Configurer les volumes d'agent Filestore, passez à l'étape 2.

  1. Créez un fichier nommé volume-pool-sc.yaml avec 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: Delete
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre Cloud de Confiance projet
    • LOCATION : région où votre pool de volumes est déployé, par exemple us-central1
    • VOLUME_POOL_ID: identifiant de votre pool de volumes
  2. Appliquez le fichier manifeste :

    kubectl apply -f volume-pool-sc.yaml
    
  3. Vérifiez que la StorageClass est 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 d'agent Filestore.

Étape suivante

Une fois votre cluster GKE et votre classe de stockage configurés, vous pouvez déployer des charges de travail d'agent d'IA avec état à l'aide de l'un des modèles d'orchestration suivants :