Agent Substrate Google Kubernetes Engine (GKE) adalah platform infrastruktur yang mengelola siklus proses sandbox agen AI stateful. Agent Substrate memungkinkan platform menangguhkan workload agen yang tidak ada aktivitas untuk menghemat biaya komputasi dan melanjutkannya dalam waktu kurang dari satu detik saat ada perintah atau tugas baru.
Volume agen Filestore menyediakan lapisan penyimpanan persisten untuk Agent Substrate, yang mempertahankan file ruang kerja, repositori kode, dan artefak scratchpad di seluruh siklus penangguhan dan pelanjutan sandbox.
Cara Agent Substrate menggunakan volume agen
Langkah-langkah berikut menjelaskan cara Agent Substrate dan volume agen Filestore mendukung agen coding interaktif yang membantu developer membangun fitur, menjalankan pengujian, dan men-debug kode:
- Inisialisasi sesi: Saat developer mengirimkan tugas, Agent Substrate membuat lingkungan sandbox di GKE dan memasang volume Filestore khusus. Agen membuat clone repositori project, menginstal dependensi, dan menyiapkan ruang kerja.
- Penangguhan tidak ada aktivitas yang hemat biaya: Saat developer meninjau perbedaan kode atau membuat perintah berikutnya, Agent Substrate akan melepas volume dan menghentikan lingkungan komputasi. Penggunaan resource komputasi turun menjadi nol, sementara semua file ruang kerja, histori Git, dan cache build tetap dipertahankan dalam volume.
- Pelanjutan instan: Saat developer mengirim perintah baru, Agent Substrate mengklaim sandbox yang telah dihangatkan dan memasang kembali volume yang ada dalam waktu kurang dari 100 md. Agen segera melanjutkan workload dengan konteks sistem file lengkap yang utuh, sehingga menghindari clone ulang repositori atau penginstalan ulang dependensi yang memakan waktu.
Untuk mengetahui informasi selengkapnya, lihat dokumentasi Agent Substrate.
Untuk menjalankan workload agen stateful di GKE Agent Substrate dengan volume agen Filestore, Anda perlu menginstal Agent Substrate, mengonfigurasi integrasi driver CSI Filestore, dan menentukan workload agen untuk menggunakan volume CSI dinamis.
Menginstal Agent Substrate
Untuk menyiapkan project Google Cloud dan menginstal Agent Substrate di cluster GKE Standard, ikuti petunjuk di Menginstal Agent Substrate di GKE.
Menginstal dan mengonfigurasi driver CSI Filestore
Untuk menggunakan volume agen Filestore dengan Agent Substrate, Anda harus memilih langkah opsional driver CSI Filestore saat menjalankan penginstal Agent Substrate interaktif.
Bidang kontrol Agent Substrate (ateapi) berkomunikasi langsung dengan pengontrol driver CSI Filestore melalui gRPC jaringan. Driver CSI
menyediakan, memasang, dan melepaskan volume per aktor secara dinamis dari
kumpulan volume Filestore Anda yang disinkronkan dengan siklus proses setiap
aktor.
Membuat workload yang menggunakan volume Filestore
Di Agent Substrate, Anda menentukan volume Filestore eksternal
secara deklaratif dalam resource ActorTemplate, bukan membuat objek PersistentVolumeClaim Kubernetes
terpisah.
Langkah-langkah berikut akan memandu Anda
mengonfigurasi StorageClass dan
CSIDriverConfig Filestore, men-deploy WorkerPool dan ActorTemplate yang memasang
volume Filestore eksternal, dan mengelola siklus proses aktor.
Membuat StorageClass
Buat file bernama storageclass.yaml untuk menyediakan volume dinamis dari kumpulan volume Filestore Anda:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: substrate-volumepool-sc
provisioner: filestore.csi.storage.gke.io
parameters:
volume-pool: "projects/PROJECT_ID/locations/LOCATION/volumePools/VOLUME_POOL_NAME"
allowVolumeExpansion: false
reclaimPolicy: Delete
volumeBindingMode: Immediate
Ganti kode berikut:
PROJECT_ID: Project ID Google Cloud Anda.LOCATION: region tempat pool volume Anda berada, sepertius-central1.VOLUME_POOL_NAME: nama pool volume Filestore Anda.
Terapkan StorageClass:
kubectl apply -f storageclass.yaml
Mendaftarkan CSIDriverConfig
Resource CSIDriverConfig menjembatani penyedia StorageClass Kubernetes (filestore.csi.storage.gke.io) ke endpoint gRPC jaringan layanan pengontrol CSI Filestore dan jalur soket domain Unix lokal plugin node CSI.
Buat file bernama csi-driver-config.yaml:
apiVersion: ate.dev/v1alpha1
kind: CSIDriverConfig
metadata:
name: filestore.csi.storage.gke.io
spec:
driverName: filestore.csi.storage.gke.io
controllerEndpoint: tcp://csi-filestore-controller.gcp-filestore-csi-driver.svc:10000
nodeSocketOverride: unix:///var/lib/kubelet/plugins/filestore.csi.storage.gke.io/csi.sock
tls:
enabled: true
usePodIdentity: true
serverName: csi-filestore-controller.gcp-filestore-csi-driver.svc
Terapkan CSIDriverConfig:
kubectl apply -f csi-driver-config.yaml
Menentukan WorkerPool dan ActorTemplate
Buat namespace
ate-demodan Kubernetes untuk berfungsi sebagai batas isolasi untuk worker pool, template aktor, dan aktor Anda:kubectl ate create atespace ate-demo kubectl create namespace ate-demo
Buat resource
WorkerPooluntuk mempertahankan workload standby fisik yang siap menghosting sandbox aktor. Simpan manifes berikut sebagaiworker-pool.yaml:apiVersion: ate.dev/v1alpha1 kind: WorkerPool metadata: name: agent-pool namespace: ate-demo labels: workload: stateful-agent spec: replicas: 5 workerImage: ko://github.com/agent-substrate/substrate/cmd/ateom-gvisorTerapkan manifes
WorkerPool:kubectl apply -f worker-pool.yaml
Buat file bernama
actor-template.yamlyang menentukanActorTemplateyang memasang volume 5 GiB darisubstrate-volumepool-sc:metadata: atespace: ate-demo name: stateful-agent-template workerSelector: matchLabels: workload: stateful-agent containers: - name: agent image: CONTAINER_IMAGE volumeMounts: - name: shared-storage mountPath: /mnt/shared readyz: httpGet: path: /readyz port: 8080 sandboxConfig: sandboxClass: SANDBOX_CLASS_GVISOR configName: gvisor-default snapshotsConfig: storageLocation: gs://SNAPSHOT_BUCKET/stateful-agent volumes: - name: shared-storage externalVolumeTemplate: capacity: 5Gi storageClassName: substrate-volumepool-scGanti kode berikut:
CONTAINER_IMAGE: image container untuk workload agen Anda, sepertigcr.io/my-project/agent-app@sha256:7f28ab0....SNAPSHOT_BUCKET: bucket Cloud Storage yang digunakan oleh Agent Substrate untuk menyimpan snapshot aktor.
Dalam manifes ini,
volumes[].externalVolumeTemplatemenentukan kapasitas volume yang diminta (5Gi) danStorageClass(substrate-volumepool-sc) yang penyedianya cocok denganCSIDriverConfigAnda, sementaracontainers[].volumeMountsmemasang volume tersebut di/mnt/shared. Setiap volume yang dideklarasikan divolumesharus dipasang oleh setidaknya satu container.Buat
ActorTemplatemelalui Agent Substrate API menggunakankubectl ateCLI:kubectl ate create actor-template -f actor-template.yaml
Membuat, menangguhkan, dan melanjutkan aktor
Setelah ActorTemplate dibuat dan snapshot golden-nya siap, Anda dapat
membuat instance aktor dan mengelola status eksekusinya:
Buat aktor baru dari
stateful-agent-template:kubectl ate create actor ACTOR_NAME \ --template=stateful-agent-template \ -a ate-demoGanti
ACTOR_NAMEdengan nama label DNS-1123 untuk aktor Anda, sepertimy-agent-1.Saat Anda membuat aktor, Agent Substrate secara dinamis menyediakan volume Filestore khusus dari
substrate-volumepool-scdan memasangnya di/mnt/shared.Menangguhkan aktor saat tidak ada aktivitas:
kubectl ate suspend actor ACTOR_NAME \ -a ate-demoMenangguhkan aktor akan membuat checkpoint status memorinya ke Cloud Storage, melepas dan mencopot volume Filestore sambil mempertahankan semua file ruang kerja di volume, dan merilis workload.
Lanjutkan aktor saat permintaan atau tugas baru tiba:
kubectl ate resume actor ACTOR_NAME \ -a ate-demoMelanjutkan aktor akan menetapkannya ke workload yang tersedia, memulihkan snapshot memorinya, dan memasang kembali volume Filestore yang ada di
/mnt/shareddengan semua file tetap utuh.
Langkah berikutnya
- Siapkan lingkungan untuk GKE.
- Konfigurasikan sandbox yang telah dihangatkan dengan Agent Sandbox.
- Pelajari penyimpanan dinamis dengan late-binding Agent Sandbox.