Configurar o ambiente do GKE para volumes do agente do Filestore

Os volumes de agente do Filestore se integram ao Google Kubernetes Engine (GKE) para fornecer armazenamento de arquivos persistente de alta densidade e baixa latência para sandboxes de agentes de IA com estado, ambientes de desenvolvimento e Agentic Workflows.

Este guia explica os pré-requisitos necessários para usar volumes de agente do Filestore no GKE.

Antes de começar

  1. Conclua a configuração inicial em Configurar volumes de agente do Filestore.
  2. Ative a API GKE:

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Instale os componentes necessários para gcloud:

    gcloud components install kubectl gke-gcloud-auth-plugin
    

Criar um cluster do GKE

Crie um cluster do GKE conectado ao 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

Substitua:

  • CLUSTER_NAME: o nome do novo cluster;
  • REGION: a região em que o pool de volumes reside, como us-central1;
  • PROJECT_ID: o ID do Cloud de Confiance by S3NS projeto;
  • VPC_NETWORK: o nome da rede VPC ativada para PSC;
  • SUBNET_NAME: o nome da sub-rede.

Configurar a Federação de Identidade da Carga de Trabalho para GKE e IAM

Conceda à conta de serviço do Kubernetes usada pelo driver CSI e à conta de serviço padrão do Compute Engine permissões para provisionar volumes do Filestore:

  1. Consiga o número do projeto:

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

    Substitua PROJECT_ID pelo ID do projeto.

  2. Conceda o papel de editor do Cloud Filestore (roles/file.editor) no projeto à conta de serviço do Kubernetes (gcp-filestore-csi-controller-sa) no namespace 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
    

    Substitua:

    • PROJECT_ID: o ID do Cloud de Confiance by S3NS projeto;
    • PROJECT_NUMBER: o número do seu Cloud de Confiance by S3NS projeto.
  3. Conceda o papel de editor do Cloud Filestore (roles/file.editor) no projeto à conta de serviço padrão do 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
    

Implantar o driver CSI do Filestore

  1. Consiga as credenciais do cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Clone o repositório do driver e aplique a sobreposição 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. Verifique se os pods do driver CSI estão em execução:

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

    O resultado será assim:

    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
    

Aplicar a StorageClass ao pool de volumes

Para permitir que as cargas de trabalho do GKE provisionem volumes dinamicamente do pool de volumes, aplique uma StorageClass do Kubernetes ao cluster.

Se você já criou o manifesto volume-pool-sc.yaml em Configurar volumes de agente do Filestore, pule para a etapa 2.

  1. Crie um arquivo chamado volume-pool-sc.yaml com a seguinte configuração:

    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
    

    Substitua:

    • PROJECT_ID: o ID do seu Cloud de Confiance projeto.
    • LOCATION: a região em que o pool de volumes está implantado, como us-central1;
    • VOLUME_POOL_ID: o identificador do pool de volumes.
  2. Aplique o manifesto:

    kubectl apply -f volume-pool-sc.yaml
    
  3. Verifique se a StorageClass está disponível:

    kubectl get storageclass volume-pool-sc
    

    O resultado será assim:

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

Depois de concluir este guia, o ambiente do GKE estará pronto para oferecer suporte a volumes de agente do Filestore.

A seguir

Com o cluster do GKE e a classe de armazenamento configurados, você pode implantar cargas de trabalho de agente de IA com estado usando um dos seguintes padrões de orquestração: