1. מבוא
בשיעור Codelab הזה תלמדו איך להשתמש בסוכן AI כדי לבצע באופן אוטומטי העברה מורכבת של תשתית. במקום לכתוב ידנית מניפסטים של Kubernetes או להריץ סקריפטים לאוטומציה, אתם מביעים את הכוונה שלכם בשפה טבעית, והסוכן משתמש ב-Model Context Protocol (MCP) ובשרת של Gemini Cloud Assist כדי ליצור ולהחיל את ההגדרה בשבילכם.
יכולות של שרת GCA MCP
שרת ה-MCP של GCA מספק לסוכן כמה כלים ייעודיים:
-
ask_cloud_assist: זהו הממשק העיקרי לקבלת עזרה ב-Google Cloud Platform ולסוכן Gemini Cloud Assist. אפשר לגשת לכל הפונקציות של Gemini Cloud Assist דרך הכלי הזה, והוא כולל את הפונקציות של שאר הכלים של MCP. -
design_infra: התמיכה הזו מתאימה לתהליכי עבודה של תכנון ותכנון ארכיטקטורה של תשתית ב-Google Cloud Platform. -
investigate_issue: התמיכה הזו מאפשרת לפתור בעיות בתהליכי עבודה ב-Google Cloud. הוא יכול לבצע פתרון בעיות מהיר או פתרון בעיות מעמיק יותר באמצעות משאב חקירה. -
invoke_operation: התמיכה הזו מאפשרת ליצור, לעדכן ולמחוק משאבים ב-Google Cloud. הכלי הזה פועל רק אם מפעילים את התכונה 'פעולות של סוכנים'. אפשר לבצע פעולות כתיבה ב-Gemini Cloud Assist רק באמצעות הפעלה של הכלי הזה. -
optimize_costs: תומך בתהליכי עבודה לניתוח, למעקב ולאופטימיזציה של עלויות ב-Google Cloud. הוא מספק פירוט של ההוצאות ומזהה הזדמנויות לחיסכון בעלויות על ידי איתור משאבים לא פעילים או משאבים שלא מנוצלים מספיק.
תתחילו עם סביבה מוכנה מראש עם אשכול GKE ומודל שהורדתם. לאחר מכן, תשתמשו ב-gemini-cli כדי להנחות את הסוכן להעביר עומס עבודה מ-Cloud Run ל-GKE ולהפעיל מופע של Gemma inference עם vLLM באמצעות המודל המועבר בדלי האחסון.
הפעולות שתבצעו:
- הכנת אשכול GKE להפעלה והורדה של מודל Gemma באמצעות Terraform.
- מגדירים את
gemini-cliבאמצעות כללי סוכן ושרת MCP. - משתמשים בהנחיה ספציפית בשפה טבעית כדי להנחות את הסוכן לבצע את ההעברה והפריסה המלאות.
- מאמתים את הפריסה שבוצעה על ידי הנציג.
הדרישות
- דפדפן אינטרנט כמו Chrome.
- פרויקט ב-Google Cloud שהחיוב בו מופעל.
- טוקן של Hugging Face (נדרש להורדת מודל Gemma במהלך שלב ההכנה).
שיעור ה-Codelab הזה מיועד למפתחים בכל הרמות, כולל מתחילים.
משך משוער: 45-60 דקות.
2. לפני שמתחילים
יוצרים פרויקט ב-Google Cloud או בוחרים פרויקט קיים.
- במסוף Google Cloud, בוחרים פרויקט או יוצרים פרויקט חדש ב-Google Cloud.
- הקפידו לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud.
הפעלת Cloud Shell
- לוחצים על Activate Cloud Shell בחלק העליון של מסוף Google Cloud.
- אימות האימות:
gcloud auth list
- מאשרים את הפרויקט:
gcloud config get project
- מגדירים אותו לפי הצורך:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID
הפעלת ממשקי ה-API
מריצים את הפקודה הבאה כדי להפעיל את כל ממשקי ה-API הנדרשים:
gcloud services enable \
run.googleapis.com \
container.googleapis.com \
aiplatform.googleapis.com \
compute.googleapis.com \
cloudbuild.googleapis.com \
cloudresourcemanager.googleapis.com
בנוסף, מפעילים את שירות ה-MCP של Gemini Cloud Assist:
gcloud beta services mcp enable geminicloudassist.googleapis.com
3. העברה של הסביבה לשלב הבא
בשלב הזה תכינו את הסביבה על ידי בניית תמונת צ'אטבוט בהתאמה אישית, יצירת אשכול GKE והורדת מודל Gemma לקטגוריה של Cloud Storage.
לעתים קרובות, ארגונים מתחילים עם Gemini API, אבל בהמשך מחליטים לעבור למודל באירוח עצמי כדי לקבל שליטה רבה יותר, להתאים אישית את המודל או להשתמש בגרסה שעברה כוונון עדין שמתאימה לעסק שלהם. ב-Codelab הזה אנחנו משתמשים ב-Gemma כדוגמה למודל פתוח רב-עוצמה שאפשר לארח בעצמכם ב-GKE. העלאה של קובץ כזה לקטגוריה של Cloud Storage מאפשרת ל-cluster שלנו להשתמש בו.
הורדת נכסי הדגמה
משכפלים את התיקייה הספציפית ממאגר GitHub.
git clone --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/next-26-keynotes.git
cd next-26-keynotes
git sparse-checkout set devkey/intent-to-infrastructure
cd devkey/intent-to-infrastructure
יצירת תמונה של צ'אט בוט
לפני הקצאת התשתית, צריך ליצור את קובץ האימג' של הצ'אטבוט המותאם אישית ולהעביר אותו בדחיפה ל-Artifact Registry. קובץ האימג' הזה ישמש את Cloud Run בשלב הבא.
- יוצרים מאגר Artifact Registry בשם
chatbot-repoב-asia-southeast1:gcloud artifacts repositories create chatbot-repo \ --repository-format=docker \ --location=asia-southeast1 \ --description="Chatbot Docker repository" - מנווטים לספרייה
src:cd src - יוצרים את קובץ האימג' ומעבירים אותו בדחיפה באמצעות Cloud Build:
gcloud builds submit --config cloudbuild.yaml \ --substitutions=_LOCATION="asia-southeast1",_REPOSITORY_ID="chatbot-repo",_IMAGE_NAME="chatbot",_IMAGE_TAG="latest" - חוזרים אל תיקיית הבסיס של הפרויקט:
cd ..
הקצאת תשתית בסיסית
עוברים לספרייה terraform ומריצים את שלב 1 כדי ליצור את אשכול GKE.
cd terraform
./deploy.sh demo step1 apply
הסקריפט הזה משתמש ב-Terraform כדי להקצות את תשתית הבסיס. הוא יוצר את ה-VPC, את אשכול GKE, את חשבונות השירות ומבצע פריסה של שירות Cloud Run הראשוני באמצעות תמונת הצ'אטבוט שיצרתם.
במהלך התהליך, Terraform יציג את התוכנית ויבקש אישור. כדי לאשר ולהמשיך, צריך להקליד yes:
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
התהליך כולו עשוי להימשך 15-20 דקות.
אחרי שהפריסה מסתיימת, מחפשים את cloud_run_url בפלט של Terraform שמופיע בטרמינל. לוחצים על כתובת ה-URL כדי לפתוח את הצ'אטבוט בדפדפן. עכשיו אפשר לנהל אינטראקציה עם הצ'אטבוט, שמבוסס כרגע על Gemini 2.5 Flash.
הורדת המודל
בשלב הזה, נכין את מודל Gemma בקטגוריה של Cloud Storage. אנחנו מתחילים עם Gemini API מנוהל, אבל אתם יכולים לבחור להריץ מודל מותאם אישית או מודל פתוח מותאם אישית אחר. לחלופין, יכול להיות שתרצו פשוט להמשיך לנהל את הרצת המודל באשכול שלכם מסיבות אבטחה או תאימות. העברת המודל כאן מאפשרת לנו להתכונן להעברה מ-Gemini API מנוהל למודל באירוח עצמי ב-GKE.
מריצים את שלב 2 כדי להוריד את מודל Gemma לדלי GCS. תצטרכו את הטוקן שלכם ב-Hugging Face. התהליך הזה פועל באשכול GKE שלכם, וייקח בערך 15 דקות (או יותר, בהתאם לתנועה) להוריד את המודל מ-Hugging Face ולהעלות אותו לדלי לשימוש מאוחר יותר.
./deploy.sh demo step2 apply -var="hf_token=<YOUR_HF_TOKEN>"
הפקודה הזו של Terraform יוצרת משימת Kubernetes באשכול GKE כדי לטפל בהורדה. הסקריפט של Terraform יישאר פעיל כל עוד העבודה פועלת.
אם רוצים לעקוב אחרי ההתקדמות מתוך סשן מעטפת אחר, או לוודא שהיא הסתיימה אחרי ההרצה, אפשר להריץ:
kubectl get jobs
4. הגדרת הסוכן ו-MCP
עכשיו נגדיר את הסוכן שיבצע את ההעברה. נשתמש ב-gemini-cli ונצייד אותו בכללים לאינטראקציה עם הסביבה.
שרת ה-MCP של Gemini Cloud Assist (GCA) הוא רכיב קריטי בתהליך הזה. הוא משמש כגשר בין הסוכן בצד הלקוח לבין Google Cloud, ומאפשר לו לבצע חקירות, ליצור תוכניות (כמו פקודות gcloud ו-kubectl) ולהחיל שינויים ישירות על משאבים בפרויקט בענן.
חשוב לוודא שקיבלתם תפקיד שמאפשר להפעיל כלי MCP, כמו roles/geminicloudassist.user. אם נתקלים בבעיות בהרשאות בהמשך, אפשר לעיין במסמכי התיעוד בנושא הגדרת תפקידי IAM ל-Cloud Assist.
הוראות מפורטות יותר לשילוב של Gemini Cloud Assist עם כלים של צד שלישי מופיעות במאמר שילוב של Gemini Cloud Assist עם כלים של צד שלישי באמצעות MCP.
התקנת התוסף Gemini Cloud Assist
- כדי לבצע אימות באמצעות Application Default Credentials (ADC), מריצים את הפקודה:
gcloud auth application-default login
- מתקינים את שרת ה-MCP כתוסף ל-Gemini CLI:
gemini extensions install https://github.com/GoogleCloudPlatform/gemini-cloud-assist-mcp
- כדי לוודא שהמיומנות הותקנה בהצלחה: מפעילים את
geminiומריצים את הפקודה הבאה כדי להציג את רשימת המיומנויות הפעילות:
/skills list
מוודאים שהמיומנות שקשורה ל-Gemini Cloud Assist מופיעה ברשימה. מקלידים exit כדי לחזור להנחיה של Cloud Shell.
הפעלת שינויים ב-Gemini Cloud Assist
כדי לאפשר לסוכן להחיל שינויים בתשתית, צריך להפעיל את תכונות המוטציה בממשק המשתמש של Gemini Cloud Assist.
- כדי לפתוח את סרגל הצד של Gemini Assist, לוחצים על הלוגו של Gemini בפינה השמאלית העליונה של חלון מסוף Google Cloud.

- מפעילים את ממשקי ה-API הנדרשים שמופיעים בסרגל הצד.

- בסרגל הצד, עוברים אל ההגדרות ומסמנים את האפשרות Enable Cloud Assist to execute actions (הפעלת Cloud Assist לביצוע פעולות).


הגדרת כללי סוכן
ספריית הפרויקט כוללת קובץ gemini.md בהתאמה אישית בבסיס התיקייה (intent-to-infrastructure). הקובץ הזה מכיל כללים שמנחים את הסוכן להשתמש בכלים הנכונים.
מוודאים שהקובץ הזה קיים בספרייה. צריך להריץ את gemini מהספרייה הזו כדי שתהיה לו גישה לקובצי Terraform, לקוד האפליקציה ולקובץ הכללים של gemini.md.
5. שלב 1: מעבירים את הצ'אטבוט ל-GKE
עכשיו נשתמש בסוכן כדי לבצע את החלק הראשון של ההעברה: העברת אפליקציית הצ'אטבוט מ-Cloud Run ל-GKE.
- מריצים את
geminiמהספרייה הבסיסית (root) שלintent-to-infrastructure(מוודאים שיש לו גישה ל-gemini.md). - קודם נבקש מהסוכן לבדוק את הפרויקט כדי להבין את האפליקציה והתשתית. מזינים את ההנחיה הבאה:
Tell me about the app and infrastructure in this project
הסוכן צריך לקרוא את הקבצים בספרייה ולתת לכם סקירה כללית של אפליקציית הצ'אטבוט וההגדרות של Terraform.
- עכשיו, משתמשים בהנחיה הבאה כדי להנחות את הנציג לבצע את ההעברה.
Convert my Cloud Run service to the equivalent on GKE.
- הנציג/ה צריכים:
- כדי להבין את ההקשר, אפשר להשתמש בכלי
ask_cloud_assist. - משתמשים בכלי
design_infraכדי ליצור את קובץ ה-YAML של Kubernetes לאפליקציית הצ'אטבוט. - שואלים: "רוצה להמשיך בהחלת ההגדרה הזו?"
- כדי להבין את ההקשר, אפשר להשתמש בכלי
- מגיבים עם
yesכדי להחיל את השינויים. הסוכן ישתמש ב-invoke_operationכדי לפרוס את המשאבים באשכול GKE.
אימות של שלב 1
- קבלת רשימת השירותים:
kubectl get services
אמור להופיע שירות של אפליקציית הצ'אטבוט שפועל.
- מעבירים את השירות קדימה כדי לגשת לצ'אטבוט:
kubectl port-forward svc/chatbot-service 8080:80
(הערה: מחליפים את
chatbot-service
עם השם בפועל של השירות שנוצר על ידי הסוכן אם הוא שונה).
בודקים את הצ'אטבוט. הוא עדיין אמור להגיב באמצעות Gemini API (כפי שהוגדר ב-Cloud Run).
6. שלב 2: פריסת Gemma באמצעות vLLM וחיבור מחדש
בשלב הזה נשתמש בסוכן כדי לפרוס מודל Gemma באירוח עצמי ב-GKE ולחבר מחדש את האפליקציה שלנו למודל.
- באותו סשן
gemini, מזינים את ההנחיה הבאה:
Now that the chatbot is on GKE, add a vLLM service running the Gemma model from my storage bucket in the same cluster. Make sure to give the vLLM service at least 10 minutes to start up to account for loading the large model. Then, update the chatbot service to reference this vLLM service instead of the Gemini API.
- הנציג/ה צריך/ה:
- משתמשים ב-
design_infraכדי ליצור קובץ YAML לפריסה ולשירות של vLLM. - מעדכנים את קובץ ה-YAML של פריסת הצ'אטבוט כדי לשנות את משתני הסביבה (או את ההגדרה) כך שיצביעו על שירות vLLM החדש במקום על Gemini API.
- בקשת אישור להחלת השינויים.
- משתמשים ב-
- מגיבים עם
yesכדי להחיל את השינויים.
אימות שלב 2
- מקבלים שוב את רשימת התרמילים:
kubectl get pods
עכשיו אמורים להופיע פודים גם לצ'אטבוט וגם ל-vLLM.
- אחרי ש-vLLM מוכן, מעבירים את שירות הצ'אטבוט שוב אם צריך, ובודקים אותו. עכשיו הוא אמור לפעול באמצעות מודל Gemma שמתארח באופן עצמאי!
7. הסרת המשאבים
כדי להימנע מחיובים שוטפים בחשבון Google Cloud, מוחקים את המשאבים שנוצרו במהלך ה-codelab הזה.
מריצים את הפקודה destroy לתשתית הבסיסית:
cd terraform
./deploy.sh demo step1 destroy
בנוסף, אתם יכולים להסיר או להשבית את התוסף Gemini Cloud Assist אם אתם רוצים לנקות את הסביבה המקומית. משתמשים ב-gemini extensions uninstall או ב-gemini extensions disable ואחריהם בשם התוסף.
8. המאמרים הבאים
כדי לקבל מידע נוסף על Gemini Cloud Assist ועל תכונות מתקדמות, כדאי לעיין במקורות המידע הבאים:
9. מזל טוב
מעולה! הצלחתם לבצע העברה מבוססת-סוכן של עומס עבודה ל-GKE באמצעות שפה טבעית ו-MCP.