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 developer, dan alur kerja multi-agen.

Panduan ini akan memandu Anda memahami 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.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 volume pool Anda berada, seperti us-central1.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • VPC_NETWORK: nama jaringan VPC yang mendukung PSC.
  • SUBNET_NAME: nama subnet.

Menyiapkan Workload Identity Federation for GKE dan IAM

Konfigurasi Akun Layanan Google (GSA) dengan izin untuk menyediakan volume Filestore dan ikat ke Akun Layanan Kubernetes (KSA) yang digunakan oleh driver CSI.

  1. Buat Akun Layanan Google:

    gcloud iam service-accounts create filestore-csi-gsa \
        --display-name="Filestore CSI Driver GSA" \
        --project=PROJECT_ID
    
  2. Berikan peran Cloud Filestore Editor (roles/file.editor) ke akun layanan:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:filestore-csi-gsa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/file.editor"
    
  3. Berikan peran Editor Cloud Filestore (roles/file.editor) ke akun layanan default 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.gserviceaccount.com" \
        --role="roles/file.editor"
    
  4. Ikat KSA di namespace gcp-filestore-csi-driver ke GSA:

    gcloud iam service-accounts add-iam-policy-binding \
        filestore-csi-gsa@PROJECT_ID.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
    

Men-deploy driver CSI Filestore

  1. Dapatkan kredensial cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Buat 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. Anotasikan akun layanan pengontrol dengan 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.gserviceaccount.com
    
  4. 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 beban kerja GKE Anda menyediakan volume secara dinamis dari kumpulan volume, terapkan StorageClass Kubernetes ke cluster Anda.

Jika Anda sudah 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 Google Cloud Anda.
    • LOCATION: region tempat volume pool Anda di-deploy, seperti us-central1.
    • VOLUME_POOL_ID: ID volume pool 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

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