Configura l'ambiente GKE per i volumi dell'agente Filestore

I volumi per agenti Filestore si integrano con Google Kubernetes Engine (GKE) per fornire spazio di archiviazione file persistente a bassa latenza e ad alta densità per sandbox di agenti AI stateful, ambienti di sviluppo e Agentic Workflows multi-agente.

Questa guida illustra i prerequisiti necessari per utilizzare i volumi dell'agente Filestore su GKE.

Prima di iniziare

  1. Completa la configurazione iniziale in Configurare i volumi dell'agente Filestore.
  2. Abilita l'API GKE:

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Installa 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.s3ns.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 risiede il pool di volumi, ad esempio us-central1.
  • PROJECT_ID: l' Cloud de Confiance by S3NS ID progetto.
  • VPC_NETWORK: il nome della rete VPC abilitata per PSC.
  • SUBNET_NAME: il nome della subnet.

Configura Workload Identity Federation for GKE e IAM

Concedi al service account Kubernetes utilizzato dal driver CSI e al account di servizio predefinito di Compute Engine le autorizzazioni per eseguire il provisioning dei volumi Filestore:

  1. Recupera il numero di progetto:

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

    Sostituisci PROJECT_ID con l'ID progetto.

  2. Concedi il ruolo Editor di Cloud Filestore (roles/file.editor) sul progetto al service account Kubernetes (gcp-filestore-csi-controller-sa) nello spazio dei nomi 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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l' Cloud de Confiance by S3NS ID progetto.
    • PROJECT_NUMBER: il tuo Cloud de Confiance by S3NS numero di progetto.
  3. Concedi il ruolo Editor di Cloud Filestore (roles/file.editor) sul progetto al account di servizio predefinito di Compute Engine:

    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
    

Esegui il deployment del driver CSI Filestore

  1. Recupera le credenziali del cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Clona 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
    
  3. Verifica 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 la StorageClass per il pool di volumi

Per consentire ai workload GKE di eseguire il provisioning dinamico dei volumi dal pool di volumi, applica una StorageClass Kubernetes al cluster.

Se hai già creato il manifest volume-pool-sc.yaml in Configurare i volumi dell'agente Filestore, vai al passaggio 2.

  1. Crea un file denominato volume-pool-sc.yaml con la seguente configurazione:

    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
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Cloud de Confiance progetto.
    • LOCATION: la regione in cui è stato eseguito il deployment del pool di volumi, ad esempio us-central1.
    • VOLUME_POOL_ID: l'identificatore del pool di volumi.
  2. Applica il manifest:

    kubectl apply -f volume-pool-sc.yaml
    
  3. Verifica che la StorageClass sia 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, l'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 dei workload di agenti AI stateful utilizzando uno dei seguenti pattern di orchestrazione:

  • Esegui il deployment dei workload utilizzando GKE Agent Substrate.
  • Esegui il deployment dei workload utilizzando GKE Agent Sandbox.
  • Configura il binding tardivo dell'archiviazione dinamica .
  • Esegui il deployment dei workload GKE autogestiti .