Usa volúmenes de agentes de Filestore con cargas de trabajo de GKE autoadministradas

Si ejecutas comparativas de agentes de IA estándar, entornos de desarrolladores o cargas de trabajo de canalización automatizadas en Google Kubernetes Engine (GKE), puedes usar los recursos estándar de Kubernetes PersistentVolumeClaim (PVC) y Deployment directamente con los volúmenes de agentes de Filestore.

Este patrón usa definiciones de recursos de Kubernetes conocidas sin necesidad de controladores de zona de pruebas personalizados ni recursos DaemonSet.

Antes de comenzar

Completa la configuración del clúster y del controlador CSI en Configura el entorno de GKE para los volúmenes del agente de Filestore.

Crea una PersistentVolumeClaim

Crea un manifiesto llamado agent-pvc.yaml que solicite almacenamiento del volume-pool-sc StorageClass que creaste antes:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: agent-workspace-pvc
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: volume-pool-sc
  resources:
    requests:
      storage: 1Gi

Aplica el manifiesto

kubectl apply -f agent-pvc.yaml

Verifica que el PVC haga la transición a Bound:

kubectl get pvc agent-workspace-pvc

El resultado es similar a lo siguiente:

NAME                  STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS     AGE
agent-workspace-pvc   Bound    pvc-12345678-abcd-ef01-2345-6789abcdef01   1Gi        RWX            volume-pool-sc   5s

El controlador de CSI de Filestore aprovisiona un volumen nuevo en tu grupo de volúmenes en menos de un segundo y vincula el PVC.

Implementa una carga de trabajo del agente

Crea un manifiesto de Deployment llamado agent-deployment.yaml que monte el PVC vinculado:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: agent-worker
  namespace: default
  labels:
    app: agent-worker
spec:
  replicas: 1
  selector:
    matchLabels:
      app: agent-worker
  template:
    metadata:
      labels:
        app: agent-worker
    spec:
      containers:
        - name: worker
          image: busybox:latest
          command: ["/bin/sh", "-c"]
          args:
            - |
              echo "Agent worker started. Workspace mounted at /workspace:"
              ls -la /workspace
              echo "Writing benchmark results..."
              date > /workspace/run-status.txt
              cat /workspace/run-status.txt
              sleep infinity
          resources:
            requests:
              cpu: "250m"
              memory: "256Mi"
            limits:
              cpu: "500m"
              memory: "512Mi"
          volumeMounts:
            - name: workspace-storage
              mountPath: /workspace
      volumes:
        - name: workspace-storage
          persistentVolumeClaim:
            claimName: agent-workspace-pvc

Aplica el manifiesto

kubectl apply -f agent-deployment.yaml

Verifica la implementación y el acceso a los archivos

  1. Verifica que el pod de implementación se esté ejecutando:

    kubectl get pods -l app=agent-worker
    

    El resultado es similar a lo siguiente:

    NAME                            READY   STATUS    RESTARTS   AGE
    agent-worker-6789bcdef-ghijk    1/1     Running   0          30s
    
  2. Verifica los registros del contenedor para confirmar que las operaciones de archivos se realizaron correctamente:

    kubectl logs -l app=agent-worker -c worker
    

    El resultado es similar a lo siguiente:

    Agent worker started. Workspace mounted at /workspace:
    total 8
    drwxr-xr-x    2 root     root          4096 Sep 14 12:00 .
    drwxr-xr-x    1 root     root          4096 Sep 14 12:00 ..
    Writing benchmark results...
    Mon Sep 14 12:00:05 UTC 2026
    

Debido a que los volúmenes del agente de Filestore admiten acceso ReadWriteMany (RWX), varias réplicas o Pods distintos pueden montar de forma simultánea el mismo PVC para flujos de trabajo colaborativos del agente.

¿Qué sigue?