נפחי אחסון לסוכנים ב-Filestore משתלבים עם Google Kubernetes Engine (GKE) כדי לספק אחסון קבצים מתמיד בצפיפות גבוהה וזמן אחזור קצר לארגזי חול של סוכני AI עם שמירת מצב, לסביבות פיתוח ול-Agentic Workflows.
במדריך הזה נסביר מה צריך לעשות כדי להשתמש בנפחי אחסון לסוכנים של Filestore ב-GKE.
לפני שמתחילים
- משלימים את ההגדרה הראשונית לפי ההוראות שבמאמר הגדרת אמצעי אחסון של סוכן Filestore.
מפעילים את GKE API:
gcloud services enable container.googleapis.com \ --project=PROJECT_IDמתקינים את הרכיבים הנדרשים ל-
gcloud:gcloud components install kubectl gke-gcloud-auth-plugin
יצירת אשכול GKE
יוצרים אשכול GKE שמחובר ל-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
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול החדש. -
REGION: האזור שבו נמצא מאגר הנפחים, למשלus-central1. -
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS . -
VPC_NETWORK: השם של רשת ה-VPC שמופעל בה PSC. -
SUBNET_NAME: שם תת-הרשת.
הגדרת איחוד זהויות של עומסי עבודה ל-GKE ול-IAM
נותנים ל-Kubernetes ServiceAccount שמשמש את מנהל ההתקן של ה-CSI ולחשבון השירות שמוגדר כברירת מחדל של Compute Engine הרשאות להקצות נפחי אחסון ב-Filestore:
מאתרים את מספר הפרויקט:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"מחליפים את
PROJECT_IDבמזהה הפרויקט.מקצים את התפקיד 'עריכה ב-Cloud Filestore' (
roles/file.editor) בפרויקט לחשבון השירות של Kubernetes (gcp-filestore-csi-controller-sa) במרחב השמות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מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance by S3NS . -
PROJECT_NUMBER: מספר הפרויקט ב- Cloud de Confiance by S3NS .
-
מקצים לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine את התפקיד 'עריכה ב-Cloud Filestore' (
roles/file.editor) בפרויקט: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
פריסת מנהל התקן Filestore CSI
קבלת פרטי הכניסה לאשכול:
gcloud container clusters get-credentials CLUSTER_NAME \ --region=REGION \ --project=PROJECT_IDמשכפלים את מאגר מנהלי ההתקנים ומחילים את שכבת העל
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
מוודאים שהפודים של מנהל ההתקן של CSI פועלים:
kubectl get pods -n gcp-filestore-csi-driver
הפלט אמור להיראות כך:
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
הגשת בקשה להנחה StorageClass על נפח הרכישה
כדי לאפשר לעומסי העבודה ב-GKE להקצות באופן דינמי נפחים ממאגר הנפחים, צריך להחיל StorageClass של Kubernetes על האשכול.
אם כבר יצרתם את קובץ המניפסט volume-pool-sc.yaml בקטע הגדרת אמצעי אחסון של סוכן Filestore, אפשר לדלג לשלב 2.
יוצרים קובץ בשם
volume-pool-sc.yamlעם ההגדרות הבאות: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מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance. -
LOCATION: האזור שבו נפרס מאגר הנפחים, למשלus-central1. -
VOLUME_POOL_ID: המזהה של מאגר הנפחים.
-
מחילים את המניפסט:
kubectl apply -f volume-pool-sc.yaml
מוודאים שה-
StorageClassזמין:kubectl get storageclass volume-pool-sc
הפלט אמור להיראות כך:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE volume-pool-sc filestore.csi.storage.gke.io Delete Immediate true 1m
אחרי שתסיימו את השלבים במדריך, סביבת GKE תהיה מוכנה לתמוך בנפחי אחסון לסוכנים ב-Filestore.
המאמרים הבאים
אחרי שמגדירים את אשכול GKE ואת סוג האחסון, אפשר לפרוס עומסי עבודה של סוכני AI עם שמירת מצב באמצעות כל אחד מהדפוסים הבאים של תזמור:
- פריסת עומסי עבודה באמצעות GKE Agent Substrate.
- פורסים עומסי עבודה באמצעות ארגז החול לסוכנים ב-GKE.
- הגדרת שיוך מאוחר של אחסון.
- פריסת עומסי עבודה ב-GKE בניהול עצמי.