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

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

  1. Completa la configurazione iniziale in Configura 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.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 esempio us-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.

  1. Crea il service account Google:

    gcloud iam service-accounts create filestore-csi-gsa \
        --display-name="Filestore CSI Driver GSA" \
        --project=PROJECT_ID
    
  2. Concedi 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"
    
  3. 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"
    
  4. Associa il KSA nello spazio dei nomi gcp-filestore-csi-driver al 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

  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. 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.com
    
  4. 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 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.

  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
    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 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 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, 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: