1. מבוא
בשיעור ה-Lab הזה תקבלו מבוא טכני לשימוש ב-Gemini CLI ובשרת GKE Model Context Protocol (MCP) לניהול תשתית. בניהול GKE מסורתי, המפעילים מתרגמים ידנית את דרישות התשתית לפקודות gcloud ואת הגדרות האפליקציה למניפסטים כתובים של YAML. ב-Lab הזה מוצגת גישה שונה: שימוש בממשק אינטראקטיבי שמגשר בין כוונות בשפה טבעית לבין ביצוע טכני ב-Google Kubernetes Engine (GKE). השינוי הזה הוא חלק ממגמה רחבה יותר בהנדסת פלטפורמות, שבה המיקוד עובר מבנייה של סקריפטים נוקשים לפעולות אוטומטיות לניהול של סוכנים חכמים שיכולים לטפל בפרטים המורכבים של פעולות בתשתית.
מושגי ליבה
- הנדסת פלטפורמות: שיטה לבנייה ולתחזוקה של כלים ותהליכי עבודה פנימיים שמאפשרים למפתחי תוכנה לנהל את התשתית שלהם בלי להיות מומחים בכל שירות ענן בסיסי. המטרה היא לצמצם את החיכוך הטכני תוך שמירה על עקביות ואבטחה. צוותי פלטפורמה יוצרים נתיב זהב סטנדרטי כדי להבטיח שמפתחי אפליקציות יוכלו לפרוס אפליקציות בצורה בטוחה ומהירה, וצוות הפלטפורמה ישמור על שליטה בניהול ובעלויות.
- Gemini CLI: ממשק שורת פקודה שמאפשר אינטראקציה עם מודלים של Gemini ישירות מהטרמינל. בניגוד לצ'אטבוט רגיל שמבוסס על אינטרנט, Gemini CLI מיועד לפעול בסביבת הפיתוח, וכך קל יותר לשלב AI בתהליכי עבודה קיימים שמבוססים על מעטפת. היא מאפשרת לכם להעביר פלט מפקודות אחרות ישירות למודל ולהריץ הוראות בלי לצאת מסביבת הטרמינל.
- Model Context Protocol (MCP): MCP הוא תקן פתוח שמאפשר למודל AI להתחבר לכלים או למקורות נתונים ספציפיים. בלי MCP, מודל AI יודע רק על מה שהוא אומן, והוא לא יכול לראות את המשאבים הספציפיים שלכם. באמצעות GKE MCP server, Gemini CLI יכול לשלוח שאילתות באופן פעיל אל ה-API של פרויקט Google Cloud, לבדוק את מצב האשכולות ולהריץ פקודות בשמכם. הוא משמש כגשר בין מנוע הנימוקים של המודל לבין ממשק ה-API של GKE.
מטרות שיעורי Lab
בסוף הפעילות הזו, תוכלו:
- הגדרת הסביבה: ניגשים ל-Cloud Shell ומאמתים את התוסף GKE MCP כדי לאפשר ל-Gemini CLI ליצור אינטראקציה עם המשאבים שלכם ב-Google Cloud.
- תכנון התשתית: שימוש בהנחיות אינטראקטיביות כדי לקבוע את ההגדרות האופטימליות של אשכולות על סמך עלות, תקורה ניהולית ודרישות עומס העבודה.
- ניהול משאבים: יצירה, ביקורת ופריסה של מניפסטים של Kubernetes (פריסות, שירותים וכו') באמצעות שפה טבעית.
- ניתוח תפעולי: אפשר להשתמש ביכולת של ה-AI לצבור יומנים ואירועים כדי לזהות את שורש הבעיה של כשלים בהטמעה ולהציע תיקונים טכניים ספציפיים.
2. הגדרת הפרויקט
כדי ש-Gemini CLI יוכל ליצור אינטראקציה עם המשאבים שלכם, צריך להגדיר סביבת Google Cloud בצורה נכונה. ההגדרה הזו מבטיחה שלפרויקט יש את ההרשאות הנכונות וכל שירותי ה-Backend הנדרשים מוכנים לקבל בקשות מסוכן ה-AI.
פתיחת Cloud Shell
בשיעור ה-Lab הזה נשתמש ב-Cloud Shell, סביבת טרמינל מבוססת-דפדפן שמסופקת על ידי Google Cloud. אנחנו משתמשים ב-Cloud Shell כי הוא מגיע עם כל הכלים שאנחנו צריכים, כולל Google Cloud CLI (gcloud), kubectl ו-Gemini CLI, וכך חוסך לכם את הזמן של התקנת הכלים האלה במחשב המקומי.
- נכנסים אל מסוף Google Cloud.
- בפינה השמאלית העליונה של המסוף, לוחצים על הלחצן Activate Cloud Shell (הוא נראה כמו שורת פקודה של טרמינל
>_). - סשן טרמינל ייפתח בחלק התחתון של חלון הדפדפן. אם מוצגת בקשה לעשות זאת, לוחצים על המשך.
בחירת פרויקט
בטרמינל של Cloud Shell, מוודאים שאתם עובדים בפרויקט הנכון.
- בוחרים פרויקט קיים או יוצרים פרויקט חדש במיוחד למעבדה הזו במסוף.
- רושמים את מזהה הפרויקט. כדי להגדיר את הפרויקט בשורת הפקודה הנוכחית, מריצים את הפקודה:
gcloud config set project [YOUR_PROJECT_ID]
הפעלת ממשקי ה-API
תכונות של Kubernetes ו-AI לא מופעלות כברירת מחדל בפרויקטים חדשים. הפעלת ממשקי ה-API האלה מאתחלת את שירותי Google Cloud הבסיסיים שמטפלים בניהול קונטיינרים, במודלים גנרטיביים וברישום מרכזי ביומן.
👈💻 כדי להפעיל אותם, מריצים את הפקודה הבאה ב-Cloud Shell. התהליך הזה עשוי להימשך דקה.
gcloud services enable \
container.googleapis.com \
generativelanguage.googleapis.com \
cloudresourcemanager.googleapis.com \
logging.googleapis.com
- container.googleapis.com: Google Kubernetes Engine API. הוא נדרש לכל הפעולות ברמת האשכול, כולל יצירה, עדכון ומחיקה של אשכולות.
- generativelanguage.googleapis.com: ה-API שמאפשר ל-Gemini CLI לתקשר עם מודלים גדולים של שפה של Gemini כדי ליצור טקסט ולנמק.
- cloudresourcemanager.googleapis.com: נדרש כדי שהסוכן יוכל לבדוק מטא-נתונים ברמת הפרויקט, לאמת מזהי פרויקטים ולנהל הרשאות IAM.
- logging.googleapis.com: חיוני לפתרון בעיות, כי הוא מאפשר לשרת ה-MCP לאחזר ולנתח יומנים מהקונטיינרים שלכם כשיש בעיות.
3. הגדרת Gemini CLI
Cloud Shell כולל את Gemini CLI כברירת מחדל, ולכן הוא הסביבה האידיאלית לתהליך העבודה הזה. השלב הראשון הוא להגדיר אותו כך שיפעל כ'סוכן' שיש לו גם את הסמכות וגם את הכלים הספציפיים שנדרשים לניהול סביבת GKE. שלב ההגדרה הזה הוא קריטי כי הוא יוצר את החיבור המאובטח בין הלוגיקה של ה-AI לבין תשתית הענן בפועל.
הפעלת Gemini CLI
בטרמינל של Cloud Shell, יוצרים ספריית עבודה חדשה ומריצים את Gemini CLI. כך מתחיל סשן שבו אפשר לנהל שיחה רציפה עם המודל. בניגוד לפקודות חד-פעמיות, במצב האינטראקטיבי יש חלון הקשר שבו נשמרות ההוראות הקודמות שלכם ומצב הפרויקט.
👈💻 מריצים את הפקודות הבאות:
mkdir -p ~/gke-lab
cd ~/gke-lab
gemini

אחרי שנכנסים, בודקים את המודעות הבסיסית של הכלי כדי לוודא שהוא יכול לראות את הסביבה שלכם:
- 👉💬 הנחיה:
Which Google Cloud project is currently active in this shell?
יכול להיות שתתבקשו לאשר את הביצוע של הפקודה gcloud, ואז תוכלו לאשר אותה.
אפשר לצאת מהממשק בכל שלב על ידי הקלדת /quit.
הערה: אם נתקלתם בבעיות קיבולת ב-Gemini 2.5 Pro, אתם יכולים לעבור ל-Gemini 2.5 Flash על ידי פתיחת Gemini באמצעות
gemini -m gemini-2.5-flash
או באמצעות
/model
הפקודה בממשק.
חיבור התוסף GKE MCP
כברירת מחדל, Gemini CLI הוא כלי לשימוש כללי ואין לו ידע ספציפי לגבי האינטראקציה עם האשכולות שלכם. צריך להתקין את התוסף GKE MCP. התוסף הזה פועל כפלאגין שמגדיר קבוצה ספציפית של כלים ופונקציות – כמו 'רשימת אשכולות' או 'קבלת יומני pod' – שהמודל יכול להפעיל כשהוא צריך לבצע משימה.
👈💻 מריצים את הפקודות הבאות כדי להתקין את התוסף GKE ולפתוח מחדש את Gemini CLI:
gemini extensions install https://github.com/GoogleCloudPlatform/gke-mcp.git
gemini
כדי לוודא שההגדרה הופעלה בצורה נכונה, נכנסים מחדש ל-Gemini CLI ומקלידים:
/extensions
4. הקצאת תשתית
בדרך כלל, הקצאת משאבים בתשתית מסורתית כוללת עיון במסמכים מורכבים או כתיבה של מאות שורות של קוד הגדרה. כשמשתמשים בסוכן, אפשר להתמקד בתיאור הדרישות ולתת ל-AI לטפל בתרגום הטכני לקריאות ה-API הנכונות. בקטע הזה נסביר איך להשתמש בסוכן גם בשלב התכנון וגם בשלב היצירה בפועל של סביבת GKE.
תכנון טכני והשוואה
לפני שיוצרים אשכול, צריך לבחור ארכיטקטורה שמתאימה לצרכים שלכם. GKE מציע שני מצבים עיקריים: Standard, שבו יש לכם שליטה מלאה על הצמתים הבסיסיים, ו-Autopilot, שבו Google מנהלת את הצמתים ואתם משלמים על סמך המשאבים שנדרשים על ידי ה-Pods. ננסה שאילתה פשוטה כדי להבין את ההבדלים בין השניים ולעשות סיעור מוחות איזה מהם מתאים לתרחיש שימוש ספציפי.
- 👉💬 הנחיה:
I need to run a standard 3-tier web application. Compare GKE Standard and GKE Autopilot. Focus on the operational effort for a small team and the cost structure for small workloads.
אפשר לנסות לשאול על רעיונות אחרים לתשתיות. מה קורה אם אתם פורסים עומסי עבודה של הסקת מסקנות מ-AI, צריכים משהו בהיקף גדול מאוד או שיש לכם מגבלות מורכבות ברשת? נסו להשתמש בהנחיות אחרות.
ביצוע יצירת אשכול
אחרי שבודקים את ההשוואה ומחליטים מה רוצים, אפשר להנחות את הסוכן לבנות את האשכול. הסוכן ינתח את הבקשה ויפעיל את הכלי create_cluster משרת GKE MCP כדי לפרוס סביבה שמוכנה לייצור על סמך הדרישות האלה.
- 👉💬 הנחיה:
Create a GKE Standard zonal cluster named 'gke-lab' in us-central1-a with 1 node with 4 CPUs. The cluster should have Workload Identity enabled.
הערה: הקצאת אשכול GKE כוללת הגדרה של מישור הבקרה, רשתות וירטואליות פרטיות והגדרות ראשוניות של הצמתים, ובדרך כלל נמשכת 8-10 דקות. אל תסגרו את הסשן שלכם ב-Gemini CLI.
אפשר לשאול על סטטוס האשכול, ושוב, השרת GKE MCP יחזיר מידע עדכני.
- 👉💬 הנחיה:
Is the new GKE cluster created and ready to use, yet?
5. פריסה ואימות
אחד היתרונות החשובים של שימוש בסוכן AI להנדסת פלטפורמות הוא היכולת שלו לבצע בדיקות וביקורות של ההגדרות שלכם לפני ההפעלה. במקום לפרוס מניפסט ולהמתין עד שהוא ייכשל, אפשר להשתמש בסוכן כדי לוודא שקובץ ה-YAML תקין מבחינה טכנית ועומד במדיניות האבטחה של הארגון לפני שהוא מגיע לאשכול.
יצירת מניפסטים
מבקשים מהסוכן ליצור מניפסט פריסה. הסוכן מבין את ניהול הגרסאות ואת הסכימה של Kubernetes API, ולכן הוא ייצור קובץ YAML בפורמט הנכון שכולל את כל השדות הנדרשים לפריסה מוצלחת.
- 👉💬 הנחיה:
Generate a Kubernetes YAML manifest for an Nginx web server. I need 3 replicas. Set a memory limit of 256Mi and a CPU limit of 500m. Also, include a Service of type LoadBalancer to make it accessible via the internet. Save the manifest as web-server.yaml
אימות טכני וביקורת אבטחה
יצירה ידנית של קובצי YAML מובילה לעיתים קרובות להגדרות שפועלות עם יותר הרשאות מהנדרש, או שחסרים בהן תכונות בסיסיות של מהימנות. אתם יכולים להשתמש בסוכן כדי לבדוק את המניפסט שהוא יצר, ולוודא שהוא עומד בתקנים המודרניים של אבטחה ועמידות.
- 👉💬 הנחיה:
Review the Nginx manifest you just created. Does it include resource requests (not just limits)? Does it specify a non-root user for the container? Add a Pod Disruption Budget to ensure high availability during cluster maintenance. Make any necessary modifications to the file, and tell me what changes were made.
ביצוע פריסה
אחרי שהקצאת האשכול מהקטע הקודם מסתיימת, מזינים ב-Gemini CLI פקודה להחלת ההגדרה על האשכול החדש. הסוכן ישתמש בכלים שלו כדי לתקשר עם שרת ה-API של Kubernetes וליצור את המשאבים המבוקשים.
- 👉💬 הנחיה:
Deploy the audited Nginx manifest to the 'gke-lab' cluster. Use the kubectl command to do this.
בדיקת סטטוס בזמן אמת
במקום להריץ כמה פקודות kubectl get pods או kubectl describe, אפשר לבקש מהנציג סיכום בשפה טבעית של התקדמות הפריסה.
- 👉💬 הנחיה:
Are the Nginx pods running? Provide the external IP address assigned to the LoadBalancer once it is available.
נתקעתם?
אם נראה ששירותי Nginx לא נפרסים בהצלחה, אפשר לנסות לפתור את הבעיה באמצעות Gemini CLI. הוא נועד לעזור לכם.
- 👉💬 הנחיה:
The Nginx deployment doesn't start up as expected. Can you help troubleshoot?
6. תחזוקה ופתרון בעיות
אחד היתרונות הכי חשובים של פלטפורמה מבוססת-AI הוא היכולת שלה לבצע פעולות ביום השני. כשמערכת נכשלת, האתגר הוא לרוב לחפש בין אלפי שורות ביומן כדי למצוא את השגיאה הרלוונטית. אם משתמשים ב-Gemini CLI עם MCP, אפשר לאפשר לסוכן לצבור יומנים, אירועים והודעות סטטוס כדי לספק אבחון ברמה גבוהה ונתיב ספציפי לפתרון.
הזרקה ידנית של כשלים
כדי לבדוק את יכולת האבחון של הסוכן, ניצור בכוונה מצב של כשל. בכרטיסייה נפרדת של מסוף, מריצים את הפקודה הזו כדי לעדכן את הפריסה עם קובץ אימג' של קונטיינר שלא קיים. הסימולציה הזו מדמה טעות אנוש נפוצה: שגיאת הקלדה בתג כלי קיבול.
👈💻 מריצים את הפקודה הבאה מחוץ ל-Gemini CLI:
kubectl set image deployment/nginx nginx=nginx:invalid-version-xyz123
הערה: יכול להיות שהפריסה שלכם לא נקראת בדיוק nginx. כדי לבדוק את זה, מריצים את הפקודה
kubectl get deployments
מערכת Kubernetes תנסה למשוך את התמונה הזו, אבל הפעולה תיכשל כי התג לא נמצא, וה-pods יעברו למצב ImagePullBackOff.
ניתוח באמצעות Gemini CLI
חוזרים להפעלה של Gemini CLI. במקום לחפש במסוף Cloud Logging באופן ידני, אפשר לבקש מהסוכן למצוא את השגיאה ולהסביר אותה.
- 👉💬 הנחיה:
The Nginx deployment on my 'gke-lab' cluster has stopped working. Use your tools to inspect the cluster state, check the recent events, and explain exactly why the pods are failing to start.
מה קורה כאן: Gemini CLI יזהה שהפריסה לא תקינה. לאחר מכן, המערכת תשתמש בכלים הזמינים כדי לבדוק את הפודים שנכשלו. הסוכן יזהה את שגיאת המשיכה, יסביר שהתג לא תקין ויציע לחזור לתמונה תקינה מוכרת.
תחזוקה והערכת סיכונים
תחזוקת הפלטפורמה כוללת היערכות לשדרוגים ולהוצאה משימוש של תכונות. אתם יכולים לבקש מהסוכן לפעול כ-SRE ולהעריך את התקינות ואת משך החיים של האשכול.
- 👉💬 הנחיה:
Is my cluster 'gke-lab' running the latest version of GKE? Check for available upgrades and let me know if any of my current resources use deprecated APIs that would break during an upgrade.
כתוצאה מכך, יכול להיות ש-Gemini יפעיל כלים של שרת GKE MCP, כמו כלים לבדיקת סטטוס האשכול והמלצות.
7. סיכום
בשיעור ה-Lab הזה למדנו על דרך חדשה ליצור אינטראקציה עם תשתית ענן. שילוב סוכן AI ישירות בתהליך העבודה של הטרמינל באמצעות Gemini CLI ו-MCP מאפשר לכם לעבור ממצב של כתיבת פקודות באופן ידני למצב של ניהול כוונות. הגישה הזו מאפשרת לצוותי פלטפורמה להרחיב את המומחיות שלהם באמצעות ממשק חכם שמטפל בפרטים החוזרים על עצמם ובפרטים שנוטים לשגיאות בניהול Kubernetes, בזמן שהמהנדס האנושי מתמקד בארכיטקטורה ברמה גבוהה ובפתרון בעיות.
סיכום שיעור ה-Lab
- קישוריות: חיברתם בהצלחה את Gemini CLI ל-GKE API באמצעות Model Context Protocol, וכך הענקתם למודל ה-AI נראות ישירה של מצב הפרויקט.
- תשתית: השתמשתם בשפה טבעית כדי לתכנן ולספק אשכול GKE, בלי שתצטרכו לזכור דגלים מורכבים של CLI.
- פיתוח: יצרתם משאבי Kubernetes, בדקתם את האבטחה שלהם ופרסתם אותם בלי לערוך ידנית קובצי YAML, וכך הקפדתם על שימוש בשיטות מומלצות מההתחלה.
- פעולות: השתמשתם ב-AI כדי לבצע ניתוח שורש הבעיה בפריסה פגומה, וכך צמצמתם באופן משמעותי את הזמן הממוצע עד לשחזור. זאת באמצעות סיכום של יומנים ואירועים על ידי ה-AI.
הסרת המשאבים
כדי למנוע חיובים שוטפים ב-Google Cloud על המשאבים שנוצרו בשיעור ה-Lab הזה, אפשר להנחות את הסוכן למחוק את האשכול.
הערה: אפשר לדלג על השלב הזה אם מתכננים להשתמש מחדש באשכול GKE לשיעור Lab אחר.
- 👉💬 הנחיה:
Delete the 'gke-lab' cluster and any associated resources.
השלבים הבאים
המלצות לקריאה נוספת:
- מסמכי Gemini CLI: מסמכי המידע הרשמיים של Gemini CLI.
- מאמרי העזרה של GKE: דף הנחיתה של כל מאמרי העזרה בנושא GKE.
- Platform Engineering on Google Cloud: הנחיות לגבי גישה ל-Platform Engineering ב-Google Cloud.
- AI ולמידת מכונה ב-GKE: מסמכים בנושא הרצה של עומסי עבודה של AI/ML ב-GKE.
- מרכז הארכיטקטורה של Google Cloud: מדריכים ושיטות מומלצות ליצירת עומסי עבודה ב-Google Cloud.