Configura el entorno de GKE para los volúmenes del agente de Filestore

Los volúmenes de agentes de Filestore se integran con Google Kubernetes Engine (GKE) para proporcionar almacenamiento de archivos persistente de alta densidad y baja latencia para entornos de pruebas de agentes de IA con estado, entornos de desarrolladores y Agentic Workflows.

En esta guía, se explican los requisitos previos necesarios para usar los volúmenes de agentes de Filestore en GKE.

Antes de comenzar

  1. Completa la configuración inicial en Configura los volúmenes de agentes de Filestore.
  2. Habilita la API de GKE:

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Instala los componentes necesarios para gcloud:

    gcloud components install kubectl gke-gcloud-auth-plugin
    

Crea un clúster de GKE

Crea un clúster de GKE conectado a tu 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

Reemplaza lo siguiente:

  • CLUSTER_NAME: Es el nombre del clúster nuevo.
  • REGION: Es la región en la que reside tu grupo de volúmenes, como us-central1.
  • PROJECT_ID: Es el ID del Cloud de Confiance by S3NS proyecto de.
  • VPC_NETWORK: Es el nombre de tu red de VPC habilitada para PSC.
  • SUBNET_NAME: Es el nombre de la subred.

Configura Workload Identity Federation for GKE y IAM

Otorga a la ServiceAccount de Kubernetes que usa el controlador de CSI y a la cuenta de servicio predeterminada de Compute Engine permisos para aprovisionar volúmenes de Filestore:

  1. Obtén el número de proyecto:

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

    Reemplaza PROJECT_ID por el ID del proyecto.

  2. Otorga el rol de editor de Cloud Filestore (roles/file.editor) en el proyecto a la ServiceAccount de Kubernetes (gcp-filestore-csi-controller-sa) en el espacio de nombres 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del Cloud de Confiance by S3NS proyecto de.
    • PROJECT_NUMBER: Es el número del Cloud de Confiance by S3NS proyecto.
  3. Otorga el rol de editor de Cloud Filestore (roles/file.editor) en el proyecto a la cuenta de servicio predeterminada de 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
    

Implementa el controlador de CSI de Filestore

  1. Obtén credenciales de clúster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Clona el repositorio del controlador y aplica la superposición 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 que los pods del controlador de CSI se estén ejecutando:

    kubectl get pods -n gcp-filestore-csi-driver
    

    El resultado es similar a este:

    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
    

Aplica la StorageClass para tu grupo de volúmenes

Para permitir que tus cargas de trabajo de GKE aprovisionen volúmenes de forma dinámica desde tu grupo de volúmenes, aplica una StorageClass de Kubernetes a tu clúster.

Si ya creaste el manifiesto volume-pool-sc.yaml en Configura los volúmenes de agentes de Filestore, ve al paso 2.

  1. Crea un archivo llamado volume-pool-sc.yaml con la siguiente configuración:

    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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID de tu Cloud de Confiance proyecto.
    • LOCATION: Es la región en la que se implementa tu grupo de volúmenes, como us-central1.
    • VOLUME_POOL_ID: Es el identificador de tu grupo de volúmenes.
  2. Aplica el manifiesto

    kubectl apply -f volume-pool-sc.yaml
    
  3. Verifica que la StorageClass esté disponible:

    kubectl get storageclass volume-pool-sc
    

    El resultado es similar a este:

    NAME             PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    volume-pool-sc   filestore.csi.storage.gke.io   Delete          Immediate           true                   1m
    

Después de completar esta guía, tu entorno de GKE estará listo para admitir volúmenes de agentes de Filestore.

¿Qué sigue?

Con tu clúster de GKE y la clase de almacenamiento configurados, puedes implementar cargas de trabajo de agentes de IA con estado con cualquiera de los siguientes patrones de organización: