תכנון ואופטימיזציה של אשכולות GKE באמצעות Compute Advisor

במאמר הזה נסביר איך לתכנן ולעצב את האשכול באמצעות Compute Advisor, ממשק מבוסס-AI שמבוסס על Gemini. מידע נוסף על הרכיבים שצריך להגדיר לפני או במהלך יצירת אשכול GKE זמין במאמר סקירה כללית של GKE.

הכלי Compute Advisor עוזר לכם להעריך את האפשרויות של החומרה, לאמוד את עלויות הפריסה ולראות את ההגדרות המומלצות לאשכולות שלכם. כדי להתאים את ההמלצות, Compute Advisor מעריך את פרויקטGoogle Cloud שלכם על ידי בדיקת מגבלות המכסה, ההזמנות הקיימות, ההנחות תמורת התחייבות לשימוש (CUD), האזור ואזור הזמינות שמוגדרים כברירת מחדל ואילוצים לגבי מיקום המשאבים. בעזרת Compute Advisor תוכלו לתכנן את העבודה ולהגיע להגדרה אופטימלית של עומס העבודה לפני שתיצרו או תשנו אשכול GKE.

מגבלות

כשמזינים הנחיה ל-Compute Advisor ב Google Cloud מסוף, אי אפשר ליצור, לשנות או למחוק משאבים באופן ישיר.

לפני שמתחילים

כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי API, לא צריך להגדיר אימות.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לגישה ל-Gemini ולשימוש בו, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Kubernetes Engine Cluster Viewer (roles/container.clusterViewer) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי לגשת ל-Gemini ולתת לו הנחיות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לגשת ל-Gemini ולתת לו הנחיות, צריך את ההרשאות הבאות:

  • כדי לראות רשימה של אשכולות: container.clusters.list

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

גישה ל-Compute Advisor במסוף Google Cloud

כדי לגשת ל-Compute Advisor במסוף Google Cloud :

  1. במסוף Google Cloud , נכנסים לדף Overview.

    לסקירה הכללית

  2. בקטע תכנון התשתית באמצעות הכלי Compute Advisor, אפשר לראות את הפרטים הבאים:

    רכיבי הממשק של הדף Compute Advisor.

    רכיבי ממשק המשתמש שמוצגים בצילום המסך שלמעלה הם:

    • כרטיסי הנחיות לפעולה מהירה: קבוצה של כרטיסים שכל אחד מהם מכיל הנחיה לדוגמה. אם לוחצים על כרטיס, Google Cloud הקונסולה מאכלסת אוטומטית את תיבת הפרומפט עם ההנחיה לדוגמה.

    • תיבת פרומפט: בשדה הזה אפשר להזין ולשלוח פרומפטים. כדי לשלוח הנחיה, לוחצים על שליחת הנחיה.

    • הצגת שיחות קודמות: התכונה הזו מאפשרת לכם לראות את הפרטים של שיחה קודמת ולהמשיך אותה, או למחוק שיחות אם אין לכם יותר צורך בהן.

    • חלונית צדדית של היסטוריית השיחות: מציגה את הצ'אטים מהזמן האחרון. החלונית הזו מוצגת רק אחרי שמתחילים להזין הנחיות בדף סקירה כללית. אפשר לבצע פעולות בחלונית הזו באופן הבא:

      • כדי להתחיל שיחה חדשה, לוחצים על צ'אט חדש.

      • כדי להמשיך שיחה מהזמן האחרון, לוחצים על השיחה בקטע שיחות מהזמן האחרון.

      • כדי לראות רשימה של כל השיחות, לוחצים על הצגת הכול. בדף ההיסטוריה שלי אפשר לראות את הפרטים של שיחות קודמות, להמשיך אותן או למחוק אותן אם הן כבר לא נחוצות.

הנחיה של Compute Advisor

אחרי ששולחים הנחיה, הכלי Compute Advisor מתחיל ליצור תגובה. מוצגת חלונית ובמסוף Google Cloud מוצגת התשובה להנחיה בחלונית, כמו בצילום המסך הבא:

תשובה להמלצה שנוצרה בחלונית Compute Advisor.

בהתאם להנחיה, חלונית התגובה כוללת את הרכיבים הבאים:

  • התאמה להקשר: הכלי Compute Advisor מעריך באופן אוטומטי את ההקשר של הפרויקט כדי לספק המלצות מותאמות אישית, כולל מגבלות מכסה, הזמנות קיימות, הנחות על שימוש מתמשך, האזור ואזור הזמינות שמוגדרים כברירת מחדל, ומגבלות על מיקום המשאבים.

  • קטעי קוד אינטראקטיביים: Compute Advisor יוצר פקודות gcloud, שיטות API בארכיטקטורת REST או משאבי Terraform. אפשר להעתיק ולהדביק את קטעי הקוד האלה או להריץ אותם ב-Cloud Shell.

  • אזור עבודה חזותי: הכלי Compute Advisor מארגן את ההמלצות בטבלאות מובנות ובהשוואות זו לצד זו. התצוגה הזו עוזרת לכם להעריך את תכונות המוצר ואת הגישות הארכיטקטוניות. הוא גם מספק תוכנית הטמעה לתרחיש לדוגמה שלכם.

בקטעים הבאים מפורטות שיטות מומלצות לכתיבת הנחיות, וגם דוגמאות להנחיות שאפשר להשתמש בהן לפני שיוצרים או משנים אשכול GKE.

שיטות מומלצות לכתיבת פרומפטים

כדי לקבל המלצות מדויקות ושימושיות מ-Compute Advisor, מומלץ לבנות את ההנחיות באותו אופן שבו בונים בלוק קוד. הגישה הזו מנחה את ה-AI הגנרטיבי באמצעות הצהרות ברורות על פרמטרים, הגדרות תפקידים, הוראות ספציפיות ופורמטים מפורשים של פלט.

כשמזינים הנחיה ל-Compute Advisor, כדאי לפעול לפי השיטות המומלצות הבאות:

  • מתמקדים בתכנון ובעיצוב: אנחנו ממליצים לא להשתמש ב-Compute Advisor כדי לפתור שגיאות באשכול GKE. כדי לפתור את השגיאות האלה, אפשר לעיין במאמר פתרון בעיות ב-GKE.

  • מציינים פרסונה או תפקיד: מגדירים תפקיד או פרסונה לטירגוט, כמו אדמין IT, חוקר AI או מהנדס פלטפורמה, כדי ש-Compute Advisor יאמץ אותם. הגישה הזו מכתיבה את הטון, העומק ורמת המומחיות של ההמלצות שמתקבלות.

  • נותנים הוראות מפורטות וממוספרות: מחלקים את המטרה לשאלות או למשימות קונקרטיות ומפורטות. הגישה הזו מארגנת את תהליך הנימוקים של Compute Advisor ועוזרת לוודא ש-Compute Advisor עונה על כל הדרישות שלכם.

  • הגדרת פורמט פלט ספציפי: מציינים במפורש איך רוצים שההמלצה תהיה מפורמטת, למשל הסבר מפורט, טבלת השוואה בפורמט Markdown או בלוק קוד gcloud מוכן לשימוש.

  • שימוש בהארקה אוטומטית של ההקשר: לא צריך לכלול בהנחיה את אזור ברירת המחדל, את האזורים, את המכסות הזמינות, את הנחות השימוש המחייב או את מגבלות המיקום של המשאבים. הכלי Compute Advisor יכול לגשת למידע הזה בפרויקט Google Cloud .

  • לשפר את העיצובים באופן איטרטיבי: אתם יכולים לשנות או להרחיב את התשובה שנוצרה על ידי Compute Advisor באמצעות שליחת הנחיות חדשות. לדוגמה, אתם יכולים לבקש מהעוזר הדיגיטלי להוסיף המלצות לגבי רשת לתוכנית הפריסה שלכם או לשנות את דרישות האחסון בלי להתחיל שיחה חדשה.

פרומפטים לדוגמה

הנה כמה דוגמאות להנחיות שיעזרו לכם לתכנן ולבצע אופטימיזציה של אשכול GKE:

  • טופולוגיית אשכולות והגדרת מאגר צמתים: כדי לקבוע את המצב האופטימלי של GKE, את סוגי המכונות ואת ההגדרות של מאגר הצמתים עבור עומס עבודה, משתמשים בהנחיה כמו הבאה:

    Act as a cloud architect. I need to design a GKE cluster topology for a
    scalable microservices application that requires both GPU nodes for AI
    inference and CPU nodes for general-purpose APIs.
    
    Please provide the following:
    1. A comparison of running this workload on GKE Autopilot versus GKE Standard.
    2. Recommendations for GKE machine types for the GPU node pool.
    3. The optimal autoscaling and auto-provisioning settings.
    4. A YAML manifest that configures tolerations for GPU taints, which are required for AI workloads.
    
    Format the comparison as a Markdown table, and provide the cluster creation
    steps as a ready-to-use gcloud CLI command.
    
  • מודל הקצאת משאבים ואופטימיזציה של עלויות: כדי להעריך מודלים של הקצאת משאבים ולבצע אופטימיזציה של ניצול המשאבים לעומסי עבודה של עיבוד באצווה, אפשר להשתמש בהנחיה כמו הבאה:

    Act as an IT administrator. I need to design a cost-optimized GKE cluster
    to run large-scale batch processing workloads that are fault-tolerant.
    
    Please provide the following:
    1. A cost and reliability comparison of using Spot VMs versus standard VMs
       in GKE node pools.
    2. An explanation of how to configure Kueue for queueing training jobs.
    3. A warning about the risk of latency for real-time inference when using Spot VMs.
    4. A YAML manifest to deploy the workloads onto Spot VM nodes.
    
    Format the comparison as a Markdown table, and provide the manifest as a
    ready-to-use code block.
    
  • טופולוגיה של דיסקים עם שמירת מצב: כדי למצוא ארכיטקטורה אופטימלית של אחסון מתמשך למסד נתונים עם זמינות גבוהה ב-GKE, אפשר להשתמש בהנחיה כמו הבאה:

    Act as a storage engineer. I need to design a StatefulSet topology in
    GKE for a distributed database that relies on Persistent Disks.
    
    Please provide the following:
    1. A comparison of regional Persistent Disks versus zonal Persistent Disks.
    2. An explanation of how the standard-rwo StorageClass prevents deadlocks in zonal Persistent Disks.
    3. A YAML manifest that shows how to deploy a stateful workload with the "volumeBindingMode: WaitForFirstConsumer" field.
    
    Format the response with Markdown headers, and provide the deployment
    manifest as a ready-to-use code block.
    
  • הנחיה להעברה של Karpenter: כדי לתכנן העברה מ-AWS Karpenter ליכולות של שינוי גודל אוטומטי ב-GKE, אפשר להשתמש בהנחיה כמו זו שבהמשך:

    Act as a Kubernetes migration specialist. I am migrating an EKS cluster
    that uses Karpenter to GKE. Please translate my AWS Karpenter
    NodePool into a GKE custom ComputeClass.
    
    Please provide the following:
    1. A summary that maps Karpenter concepts to GKE Node Auto-Provisioning (NAP) and ComputeClasses.
    2. A YAML manifest that shows how a ComputeClass provides the same variety of instance types and weighting for  Spot VMs as Karpenter.
    3. The changes required in the Pod manifest to use the new ComputeClass.
    
    Format the mapping as a Markdown table, and provide the GKE
    manifests as code blocks that are ready to use.
    

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