מידע על GKE Agent Sandbox

ארגז החול לסוכנים ב-Google Kubernetes Engine ‏ (GKE) עוזר לכם לנהל עומסי עבודה מבודדים, עם שמירת מצב ועם עותק יחיד ב-GKE. היא מותאמת לתרחישי שימוש כמו זמני ריצה של סוכני AI, שבהם צריך להריץ קוד לא מהימן שנוצר על ידי LLM בסביבה מאובטחת עם ביצועים טובים.

התוסף GKE Agent Sandbox מבוסס על פרויקט הקוד הפתוח Agent Sandbox controller ופועל בהתאם למחזורי השחרור שלו. כתוסף מנוהל של GKE, ‏ Google מנהלת את מחזור החיים המלא של בקר התוסף, כולל שדרוגים אוטומטיים ותיקוני אבטחה.

במסמך הזה מפורטת סקירה כללית של GKE Agent Sandbox.

למה כדאי להשתמש ב-GKE Agent Sandbox

‫GKE Agent Sandbox מיועד לעומסי עבודה של סוכנים שדורשים רמת אבטחה גבוהה, יכולת הרחבה וקנה מידה גדול. בין היתרונות המרכזיים של מודעות למכירת רכב:

  • בידוד ברמת הליבה: מספק בידוד חזק ברמת הליבה לקוד לא מהימן שנוצר על ידי LLM. ‫Agent Sandbox פועל גם עם Kata Containers בקוד פתוח. למדריך על שימוש ב-Kata Containers בקוד פתוח עם ארגז החול לסוכנים ב-GKE, אפשר לעיין במאמר הפעלת Kata Containers ב-GKE.

  • הקצאת משאבים תוך פחות משנייה: מציע מנגנון מוכן לשימוש להקצאת ארגזי חול במהירות גבוהה משמעותית מזו שמתאפשרת בתזמון רגיל של Pod ב-Kubernetes (בדרך כלל פחות משנייה).

  • הרחבה מובנית בענן: שימוש בעוצמה של פרדיגמת Kubernetes ובתשתית המנוהלת של GKE.

ארגז החול לסוכנים ב-GKE מספק API מוצהר וסטנדרטי, ומציע חוויה של קונטיינר יחיד עם מאפייני בידוד והתמדה שדומים למכונה וירטואלית (VM), שנבנה כולו על פרימיטיבים של Kubernetes.

תרחישים נפוצים לדוגמה לשימוש בארגז החול של נציגים

משתמשים בארגז חול של סוכן GKE לעומסי עבודה שדורשים בידוד, עמידות וזהות יציבה. תרחישים לדוגמה:

  • זמני ריצה של סוכני AI: הרצת קוד לא מהימן בצורה בטוחה בסביבה מבודדת באמצעות זמני ריצה שמתמקדים באבטחה, כמו gVisor.
  • סביבות פיתוח: מספקות למפתחים סביבות קידוד מתמשכות ומבודדות שמבוססות על ענן.
  • מחברות וכלים למחקר: אירוח סשנים של קונטיינר יחיד לכלים אינטראקטיביים כמו מחברות Jupyter.
  • שירותים עם שמירת מצב ב-Pod יחיד: הפעלת אפליקציות שזקוקות לזהות ולאחסון יציבים בלי המורכבות של StatefulSet.
  • ניהול סביבות באופן פרוגרמטי: אפשר להשתמש בערכות SDK של ספריות לקוח שסופקו, כמו Agent Sandbox Python SDK, כדי לבקש ולנהל ארגזי חול ישירות מהלוגיקה של האפליקציה בלי לנהל Kubernetes YAML.

איך פועל GKE Agent Sandbox

ארגז החול לסוכנים ב-GKE משתמש בבקר מותאם אישית ובכמה הגדרות של משאבים מותאמים אישית (CRD) ב-Kubernetes כדי לנהל את מחזור החיים של סביבות ארגז החול.

ארכיטקטורת ליבה

  • Sandbox CRD: המשאב הראשי שמייצג Pod יחיד עם שמירת מצב. היא מנהלת שמות מארחים יציבים, זהות רשת ואחסון מתמיד.
  • נתב ארגז חול: רכיב שמספק נקודת קצה יציבה ומנהר תנועה לתרמילי ארגז החול המתאימים, ומבצע הפשטה של מורכבות הרשת הבסיסית.
  • שילוב עם תמונות מצב של Pod: ארגז החול ��סוכנים ב-GKE משולב עם התכונה תמונות מצב של Pod ב-GKE, כדי לאפשר השהיה והפעלה מחדש של עומסי עבודה על ידי שמירה ושחזור של המצב המלא של קונטיינר.

מודל התלונות

מודל התביעה הוא תכונה מרכזית שמפרידה בין בקשת המשתמש לסביבה לבין פרטי ההטמעה הספציפיים, כמו איפה ועבור איזו עומס עבודה מוקצים משאבים. בניגוד ל-Kubernetes רגיל StatefulSet, מודל התביעה מאפשר לכם לבקש ארגז חול בלי שתצטרכו לנהל ישירות את הגדרות ה-Pod או האחסון הבסיסיות.

ניהול מודל התביעות מתבצע באמצעות CRD‏ SandboxClaim ו-SandboxTemplate, והוא פועל באופן הבא:

  1. משתמשים או אפליקציות מבקשים ארגז חול על ידי יצירת SandboxClaim שמפנה אל SandboxTemplate.
  2. הבקר מטפל במיפוי של הטענה למופע בפועל של Sandbox, ומציע ניהול גמיש של הקצה העורפי. כך המערכת יכולה לעשות שימוש חוזר בארגזי חול קיימים או להקצות ארגז חול ממאגר.

בריכות חמות

התכונה Warm Pool נועדה למזער את זמן האחזור של תהליך ההפעלה, שהוא קריטי לתרחישים של סוכני AI אינטראקטיביים. התכונה הזו מאפשרת ל-Agent Sandbox לספק סביבות הפעלה בפחות משנייה אחת, מהר משמעותית מתזמון רגיל של Pod. התכונה מנוהלת באמצעות SandboxWarmPool CRD והיא פועלת באופן הבא:

  1. SandboxWarmPool שומר על קבוצה של מופעי Pod שחוממו מראש במצב מוכן.
  2. כשמתבצעת SandboxClaim, בקר המערכת מקצה באופן מיידי Pod מתוך המאגר, במקום לחכות ש-Pod חדש ימשוך תמונות ויתחיל מאפס.
  3. כשמשלבים אותם עם תמונות מצב של Pod, מאגרי זיכרון חמים מספקים יכולות מהירות של הפעלה מיידית, על ידי שחזור של Pod ממצב שהוגדר מראש.

בידוד רשת

ארגז החול לסוכנים ב-GKE מטמיע Default Deny (דחייה כברירת מחדל) של אבטחת רשת לכל סביבות ארגז החול. כך אפשר לוודא שקוד לא מהימן שמופעל בתוך ארגז חול לא יכול לגשת לרשתות פנימיות לא מורשות או למישור הבקרה של GKE כברירת מחדל. אתם יכולים להגדיר הגבלות ספציפיות על הרשת וכללים מותרים לתעבורת נתונים יוצאת (egress) או לתעבורת נתונים נכנסת (ingress) ב-SandboxTemplate כדי לספק אבטחה ברמת גרנולריות גבוהה לעומסי עבודה של סוכנים.

גישה פרוגרמטית באמצעות ערכות SDK

מהנדסי AI יכולים להשתמש במשאבים של ארגז החול לסוכנים ב-GKE באופן פרוגרמטי באמצעות ספריות לקוח שסופקו. לדוגמה, Python SDK מספק ממ��ק ברמה גבוהה שמבצע הפשטה של ההגדרות הבסיסיות של SandboxClaim ו-SandboxTemplate. כך תוכלו ליצור אינטראקציה עם סביבות מבודדות ישירות ממסגרות של סוכנים מבוססי Python, כמו LangChain או Vertex AI Agentic SDK.

מגבלות ודרישות

ל-GKE Agent Sandbox יש את המגבלות והדרישות הבאות:

  • גרסת האשכול: נדרשת גרסה GKE 1.35.2-gke.1269000 ואילך לתמיכה מלאה בתכונה (כולל תמונות מצב).
  • דרישות התשתית: האפשרות הזו מותאמת להגדרות ספציפיות של צמתים (כמו סוגי מכונות N2) ונדרש להתקין ולהגדיר את בקר Agent Sandbox באשכול.
  • זמני ריצה של בידוד: למרות שהוא תומך בכמה זמני ריצה, הוא מיועד בעיקר לשימוש עם זמני ריצה מוקשחים מבחינת אבטחה כמו gVisor.
  • זמינות של תכונות בסיסיות: יכול להיות שתכונות בסיסיות מסוימות, כמו תמונות מצב של GKE Pod, יהיו בגרסת Preview או שיהיו זמינות באזורים ספציפיים.

המאמרים הבאים