Menyiapkan lingkungan GKE untuk volume agen Filestore

Volume agen Filestore terintegrasi dengan Google Kubernetes Engine (GKE) untuk menyediakan penyimpanan file persisten dengan kepadatan tinggi dan latensi rendah untuk sandbox agen AI stateful, lingkungan pengembangan, dan Agentic Workflows.

Panduan ini menjelaskan prasyarat yang diperlukan untuk menggunakan volume agen Filestore di GKE.

Sebelum memulai

  1. Selesaikan penyiapan awal di Menyiapkan volume agen Filestore.
  2. Aktifkan GKE API:

    gcloud services enable container.googleapis.com \
        --project=PROJECT_ID
    
  3. Instal komponen yang diperlukan untuk gcloud:

    gcloud components install kubectl gke-gcloud-auth-plugin
    

Membuat cluster GKE

Buat cluster GKE yang terhubung ke Private Service Connect Anda.

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

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster baru.
  • REGION: region tempat kumpulan volume Anda berada, seperti us-central1.
  • PROJECT_ID: project ID Anda Cloud de Confiance by S3NS .
  • VPC_NETWORK: nama jaringan VPC yang mendukung PSC.
  • SUBNET_NAME: nama subnet.

Menyiapkan Workload Identity Federation untuk GKE dan IAM

Berikan izin kepada Kubernetes ServiceAccount yang digunakan oleh driver CSI dan akun layanan default Compute Engine untuk menyediakan volume Filestore:

  1. Dapatkan nomor project Anda:

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

    Ganti PROJECT_ID dengan project ID Anda.

  2. Berikan peran Cloud Filestore Editor (roles/file.editor) pada project ke Kubernetes ServiceAccount (gcp-filestore-csi-controller-sa) di 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
    

    Ganti kode berikut:

    • PROJECT_ID: project ID Anda Cloud de Confiance by S3NS .
    • PROJECT_NUMBER: nomor Cloud de Confiance by S3NS project Anda.
  3. Berikan peran Cloud Filestore Editor (roles/file.editor) pada project ke akun layanan default 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
    

Men-deploy driver CSI Filestore

  1. Dapatkan kredensial cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Clone repositori driver dan terapkan 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. Pastikan pod driver CSI sedang berjalan:

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

    Outputnya mirip dengan hal berikut ini:

    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
    

Menerapkan StorageClass untuk kumpulan volume Anda

Untuk mengizinkan workload GKE Anda menyediakan volume secara dinamis dari kumpulan volume, terapkan StorageClass Kubernetes ke cluster Anda.

Jika Anda telah membuat manifes volume-pool-sc.yaml di Menyiapkan volume agen Filestore, lewati ke langkah 2.

  1. Buat file bernama volume-pool-sc.yaml dengan konfigurasi berikut:

    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
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Cloud de Confiance Anda.
    • LOCATION: region tempat kumpulan volume Anda di-deploy, seperti us-central1.
    • VOLUME_POOL_ID: ID kumpulan volume Anda.
  2. Terapkan manifes:

    kubectl apply -f volume-pool-sc.yaml
    
  3. Pastikan StorageClass tersedia:

    kubectl get storageclass volume-pool-sc
    

    Outputnya mirip dengan hal berikut ini:

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

Setelah menyelesaikan panduan ini, lingkungan GKE Anda siap mendukung volume agen Filestore.

Langkah berikutnya

Dengan cluster GKE dan class penyimpanan yang dikonfigurasi, Anda dapat men-deploy workload agen AI stateful menggunakan salah satu pola orkestrasi berikut:

  • Men-deploy workload menggunakan GKE Agent Substrate.
  • Men-deploy workload menggunakan GKE Agent Sandbox.
  • Mengonfigurasi pengikatan terlambat penyimpanan dinamis .
  • Men-deploy workload GKE yang dikelola sendiri .