בקשות למשאבים ב-Autopilot

כדי לשפר את יציבות עומסי העבודה, מצב Autopilot ב-Google Kubernetes Engine‏ (GKE) מנהל את הערכים של בקשות למשאבי Pod, כמו CPU, זיכרון או אחסון זמני. בדף הזה מופיע המידע הבא, שבעזרתו תוכלו לתכנן עומסי עבודה יעילים, יציבים וחסכוניים:

  • ערכי ברירת מחדל ש-Autopilot מחיל על Pods שלא צוינו בהם ערכים.
  • ערכי המינימום והמקסימום שהטייס האוטומטי מחיל על בקשות למשאבים.
  • איך ערכי ברירת המחדל, המינימום והמקסימום משתנים בהתאם לחומרה שה-Pods מבקשים.

הדף הזה מיועד לאנשי תפעול ולמפתחים שמקצים ומגדירים משאבי ענן ופורסים עומסי עבודה. מידע נוסף על תפקידים נפוצים ודוגמאות למשימות שאנחנו מתייחסים אליהן ב Cloud de Confiance by S3NSתוכן זמין במאמר תפקידים נפוצים של משתמשים ומשימות ב-GKE.

מומלץ להכיר את ניהול המשאבים ב-Kubernetes.

סקירה כללית של בקשות למשאבים ב-Autopilot

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

כשפורסים עומס עבודה באשכול Autopilot, ‏ GKE מאמת את הגדרת עומס העבודה מול הערכים המינימליים והמקסימליים המותרים עבור סוג המחשוב או הגדרת החומרה שנבחרו (למשל מעבדי GPU). אם מספר הבקשות נמוך מהמינימום, טייס אוטומטי משנה אוטומטית את הגדרות העומס כדי להביא את מספר הבקשות לטווח המותר. אם מספר הבקשות חורג מהמקסימום, Autopilot דוחה את עומס העבודה ומציג הודעת שגיאה.

הרשימה הבאה מסכמת את הקטגוריות של בקשות למשאבים:

  • בקשות ברירת מחדל למשאבים: Autopilot מוסיף אותן אם לא מציינים בקשות משלכם לעומסי עבודה
  • בקשות מינימליות ומקסימליות למשאבים: ‫Autopilot מאמת את הבקשות שציינתם כדי לוודא שהן בתחום המגבלות האלה. אם הבקשות שלכם חורגות מהמגבלות, Autopilot משנה את בקשות עומס העבודה.
  • הפרדה בין עומסי עבודה ובקשות למשך זמן ממושך: ל-Autopilot יש ערכי ברירת מחדל שונים וערכים מינימליים שונים לעומסי עבודה שמופרדים זה מזה, או ל-Pods שמקבלים הגנה מורחבת מפני הוצאה משימוש שמתבצעת על ידי GKE.
  • בקשות למשאבים עבור DaemonSets: ל-Autopilot יש ערכי ברירת מחדל, מינימום ומקסימום שונים עבור קונטיינרים ב-DaemonSets.

איך מבקשים משאבים

ב-Autopilot, אתם מבקשים משאבים במפרט ה-Pod. המשאבים המינימליים והמקסימליים שנתמכים שניתן לבקש משתנים בהתאם להגדרת החומרה של הצומת שבו פועלים ה-Pods. כדי ללמוד איך לבקש הגדרות חומרה ספציפיות, אפשר לעיין בדפים הבאים:

בקשות ברירת מחדל למשאבים

אם לא מציינים בקשות למשאבים עבור חלק מהקונטיינרים ב-Pod,‏ Autopilot מחיל ערכי ברירת מחדל. ברירות המחדל האלה מתאימות לעומסי עבודה קטנים רבים.

בנוסף, במצב Autopilot מוגדרות בקשות ברירת המחדל הבאות למשאבים, ללא קשר לסוג המחשוב או להגדרת החומרה שנבחרו:

  • קונטיינרים ב-DaemonSets

    • מעבד (CPU): 50 mCPU
    • זיכרון: 100 MiB
    • שטח אחסון זמני: 100 MiB
  • כל שאר הקונטיינרים

    • שטח אחסון זמני: 1 GiB

מידע נוסף על מגבלות של אשכולות Autopilot זמין במאמר מכסות ומגבלות.

בקשות ברירת מחדל לסוגי מחשוב

ב-Autopilot, ערכי ברירת המחדל הבאים מוחלים על משאבים שלא מוגדרים במפרט של ה-Pod עבור Pods שפועלים בסוגי מחשוב. אם מגדירים רק אחת מהבקשות ומשאירים את השנייה ריקה, GKE משתמש ביחס בין CPU לזיכרון שמוגדר בקטע בקשות מינימום ומקסימום כדי להגדיר את הבקשה החסרה לערך שתואם ליחס.

סוגי מחשוב משאב בקשת ברירת מחדל
לשימוש כללי (ברירת המחדל autopilot או autopilot-arm) CPU ‫0.5 vCPU
זיכרון ‫2 GiB
Accelerator לא נאכפות בקשות ברירת מחדל.
מאוזן CPU ‫0.5 vCPU
זיכרון ‫2 GiB
ביצועים לא נאכפות בקשות ברירת מחדל.
סילומיות אופקית (scale out) CPU ‫0.5 vCPU
זיכרון ‫2 GiB

בקשות מינימליות ומקסימליות למשאבים

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

  • בקשה מינימלית לכל צומת: כשמשתמשים במודל החיוב מבוסס-Pod כדי להריץ עומסי עבודה במצב Autopilot באשכולות Standard, וסכום בקשות המשאבים של Pods שניתן לחייב בצומת נמוך מהבקשה המינימלית שתחול על Pod יחיד,‏ GKE מוסיף חיוב על הבקשה המינימלית הזו.

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

  • בקשות לאחסון זמני:

    • אחסון זמני משתמש בדיסק האתחול של ה-VM, אלא אם הצמתים שלכם כוללים כונני SSD מקומיים שמצורפים אליהם.

      חומרה לחישובים שכוללת כונני SSD מקומיים, כמו יחידות GPU מסוג A100 (80GB), יחידות GPU מסוג H100 (80GB) או סדרת המכונות Z3, תומכת בבקשה מקסימלית ששווה לגודל של כונן ה-SSD המקומי פחות תקורה של המערכת. מידע על התקורה של המערכת זמין במאמר אחסון זמני שמגובה על ידי כונני SSD מקומיים.

    • ב-GKE בגרסה 1.29.3-gke.1038000 ואילך, ל-Pods מסוג Performance class ול-Pods של מאיצי חומרה יש תמיכה בבקשת אחסון זמני מקסימלית של 56 TiB, אלא אם החומרה כוללת כונני SSD מקומיים.

      בכל שאר ה-Pods במצב Autopilot, ללא קשר לגרסת GKE, בקשת האחסון הזמני הכוללת בכל הקונטיינרים ב-Pod צריכה להיות בין 10 MiB ל-10 GiB, אלא אם צוין אחרת.

    • לנפחים גדולים יותר, מומלץ להשתמש בנפחי אחסון זמניים גנריים, שמספקים פונקציונליות וביצועים שווים לאחסון זמני, אבל עם גמישות רבה יותר כי אפשר להשתמש בהם עם כל אפשרות אחסון ב-GKE. לדוגמה, הגודל המקסימלי של נפח אחסון זמני כללי באמצעות pd-balanced הוא 64 TiB.

  • לגבי פודים של DaemonSet, דרישות המינימום למשאבים הן:

    • אשכולות שתומכים בשימוש זמני בעודף משאבים: ‏1 mCPU לכל Pod,‏ 2 MiB של זיכרון לכל Pod ו-10 MiB של אחסון זמני לכל קונטיינר ב-Pod.
    • קלאסטרים שלא תומכים בשימוש זמני בעומס יתר: 10 mCPU לכל Pod,‏ 10 MiB של זיכרון לכל Pod ו-10 MiB של אחסון זמני לכל קונטיינר ב-Pod.

    כדי לבדוק אם האשכול שלכם תומך ב-bursting, אפשר לעיין במאמר בנושא זמינות של bursting ב-GKE.

  • אם האשכול שלכם תומך בשימוש זמני במשאבים מעבר למכסה, ב-Autopilot לא נאכפים תוספות של 0.25 vCPU לבקשות ה-CPU של ה-Pod. אם האשכול לא תומך ב-bursting, מצב Autopilot מעגל את בקשות ה-CPU למספר הקרוב ביותר של 0.25 vCPU. כדי לבדוק אם האשכול תומך ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

  • יחס המעבד לזיכרון צריך להיות בטווח המותר עבור סוג המחשוב או תצורת החומרה שנבחרו. אם יחס המעבד לזיכרון חורג מהטווח המותר, Autopilot מגדיל אוטומטית את המשאב הקטן יותר. לדוגמה, אם תבקשו 1 vCPU ו-16 GiB של זיכרון (יחס של 1:16) עבור Pods שפועלים במחלקה Scale-Out, ‏ Autopilot יגדיל את בקשת ה-CPU ל-4 vCPUs, וישנה את היחס ל-1:4.

ערכי מינימום ומקסימום לסוגי מחשוב

בטבלה הבאה מפורט יחס הזיכרון ל-CPU המינימלי, המקסימלי והמותר לכל מחלקה של מחשוב שנתמכת ב-Autopilot:

סוגי מחשוב היחס בין יחידת העיבוד המרכזית (CPU) לזיכרון (vCPU:GiB) משאב מינימום מקסימום
לשימוש כללי (ברירת המחדל autopilot או autopilot-arm) בין 1:1 ל-1:6.5 CPU

הערך תלוי בשאלה אם האשכול תומך בשימוש זמני במשאבים מעבר למכסה, באופן הבא:

  • אשכולות שתומכים בשימוש זמני בעוצמת מחשוב גבוהה: 50 מיליון CPU
  • אשכולות שלא תומכים בשימוש זמני במשאבים מעבר למקסימום: 250m CPU

כדי לבדוק אם האשכול שלכם תומך בשימוש ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

‫30 vCPU
זיכרון

הערך תלוי בשאלה אם האשכול תומך בשימוש זמני במשאבים מעבר למכסה, באופן הבא:

  • אשכולות שתומכים בשימוש בנפח אחסון מעבר למכסה: 52 MiB
  • אשכולות שלא תומכים בשימוש בנפח אחסון זמני: 512 MiB

כדי לבדוק אם האשכול שלכם תומך בשימוש ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

‫‎110 GiB
Accelerator ערכים מינימליים ומקסימליים של מאיצים
מאוזן בין 1:1 ל-1:8 CPU ‫0.25 vCPU

‫222 vCPU

אם נבחרה האפשרות minimum CPU platform:

  • פלטפורמות Intel: ‏ 126 vCPU
  • פלטפורמות AMD: ‏ 222 vCPU
זיכרון ‫0.5 GiB

‫851 GiB

אם נבחרה האפשרות minimum CPU platform:

  • פלטפורמות Intel: ‏ 823 GiB
  • פלטפורמות AMD: ‏ 851 GiB
ביצועים לא רלוונטי CPU אין אכיפה של דרישה מינימלית לבקשות
  • סדרת מכונות C2: ‏ 58 vCPU
  • סדרת מכונות C2D: ‏ 110 vCPU
  • סדרת מכונות C3: ‏174 vCPU
  • סדרת מכונות C3 עם כונן SSD מקומי: 174 vCPU
  • סדרת מכונות C3D: ‏ 358 vCPU
  • סדרת מכונות C3D עם SSD מקומי: 358 vCPU
  • סדרת מכונות C4A (לעיון בדרישות ובמגבלות): 70 vCPU
  • סדרת מכונות C4D (גרסה ‎1.32.9-gke.1711000 ואילך): 382 vCPU
  • סדרת מכונות C4D עם SSD מקומי (גרסה ‎1.32.9-gke.1711000 ואילך): ‏ 382 vCPU
  • סדרת מכונות H3: ‏ 86 vCPU
  • סדרת מכונות H4D (גרסה ‎1.33.2-gke.4731000 ואילך): 192 vCPU
  • סדרת מכונות T2A: ‏ 46 vCPU
  • סדרת מכונות T2D: ‏ 58 vCPU
  • סדרת מכונות C4: ‏ 286 vCPU
  • סדרת מכונות M4 (גרסה 1.33.4-gke.1013000 ואילך): 224 vCPU
  • סדרת מכונות N4: ‏ 78 vCPU
  • סדרת מכונות N4A (גרסה ‎1.34.1-gke.3403001 ואילך): ‎64 vCPU
  • סדרת מכונות N4D: ‏ 94 vCPU
  • סדרת מכונות Z3: ‏174 vCPU
זיכרון אין אכיפה של דרישה מינימלית לבקשות
  • סדרת מכונות C2: ‏ 218 GiB
  • סדרת מכונות C2D: ‏ 835 GiB
  • סדרת מכונות C3: ‏ ‎1,345 GiB
  • סדרת מכונות C3 עם כונן SSD מקומי: 670 GiB
  • סדרת מכונות C3D: ‏ 2,750 GiB
  • סדרת מכונות C3D עם כונן SSD מקומי: 1,375 GiB
  • סדרת מכונות C4A (ראו דרישות ומגבלות): ‏ 540 GiB
  • סדרת מכונות C4D (1.32.9-gke.1711000 ואילך): 2,905 GiB
  • סדרת מכונות C4D עם כונן SSD מקומי (1.32.9-gke.1711000 ואילך): 2,905 GiB
  • סדרת מכונות H3: ‏ 330 GiB
  • סדרת מכונות H4D ‏ (1.33.2-gke.4731000 ואילך): 1,400 GiB
  • סדרת מכונות T2A: ‏ 172 GiB
  • סדרת מכונות T2D: ‏ 218 GiB
  • סדרת מכונות C4: ‏ ‎2,140 GiB
  • סדרת מכונות M4 ‏ (1.33.4-gke.1013000 ואילך): 5,952 GiB
  • סדרת מכונות N4: ‏ 600 GiB
  • סדרת מכונות N4A (גרסה ‎1.34.1-gke.3403001 ואילך): ‎512 GiB
  • סדרת מכונות N4D: ‏ 768 GiB
  • סדרת מכונות Z3: ‏ 34,000 GiB
שטח אחסון זמני אין אכיפה של דרישה מינימלית לבקשות
  • סדרת מכונות C2: ‏ 56 TiB
  • סדרת מכונות C2D: ‏ 56 TiB
  • סדרת מכונות C3: ‏ 56 TiB
  • סדרת מכונות C3 עם כונן SSD מקומי: 10,000 GiB
  • סדרת מכונות C3D: ‏ 56 TiB
  • סדרת מכונות C3D עם SSD מקומי: 10,000 GiB
  • סדרת מכונות C4A (ראו דרישות ומגבלות): ‏ 56 TiB
  • סדרת מכונות C4D (גרסה 1.32.9-gke.1711000 ואילך): 56 TiB
  • סדרת מכונות C4D עם כונן SSD מקומי (1.32.9-gke.1711000 ואילך): 10,000 GiB
  • סדרת מכונות H3: ‏ 56 TiB
  • סדרת מכונות H4D ‏ (1.33.2-gke.4731000 ואילך): 56 TiB
  • סדרת מכונות T2A: ‏ 56 TiB
  • סדרת מכונות T2D: ‏ 56 TiB
  • סדרת מכונות C4: ‏ 56 TiB
  • סדרת מכונות M4‏ (1.33.4-gke.1013000 ואילך): 56 TiB
  • סדרת מכונות N4: ‏ 56 TiB
  • סדרת מכונות N4A (גרסה ‎1.34.1-gke.3403001 ואילך): 56 TiB
  • סדרת מכונות N4D: ‏ 56 TiB
  • סדרת מכונות Z3: ‏ 34,000 GiB
סילומיות אופקית (scale out) בדיוק 1:4 CPU ‫0.25 vCPU
  • arm64: 43 vCPU
  • amd64: 54 vCPU
זיכרון ‫‎1 GiB
  • arm64: 172 GiB
  • amd64: 216 GiB

כדי ללמוד איך לבקש מחלקות מחשוב ב-Pods של Autopilot, אפשר לעיין במאמר בחירת מחלקות מחשוב ל-Pods של Autopilot.

ערכי מינימום ומקסימום לשיפורי מהירות

‫GKE לא אוכף בקשות מינימליות של CPU, זיכרון או אחסון זמני עבור Pods שמשתמשים במאיצים. בטבלה הבאה מתוארים מספר הבקשות המקסימלי לכל אחד מהמשאבים האלה, על סמך מספר המאיצים וסוג המאיץ שבו אתם משתמשים.

אלא אם מציינים אחרת, נפח האחסון הזמני המקסימלי שנתמך הוא 56 TiB.

סוג המאיץ משאב מקסימום
NVIDIA B200
nvidia-B200
CPU
  • ‫8 יחידות GPU: ‏ 224 vCPU
זיכרון
  • ‫8 יחידות GPU: ‏ ‎3,968 GiB
שטח אחסון זמני
  • ‫8 יחידות GPU: ‏ 10 TiB
NVIDIA H200 (141GB)
nvidia-h200-141gb
CPU
  • ‫8 יחידות GPU: ‏ 224 vCPU
זיכרון
  • ‫8 יחידות GPU: ‏ ‎2,952 GiB
שטח אחסון זמני
  • ‫8 יחידות GPU: ‏ 10 TiB ‏ (1.32.2-gke.1182000 ואילך)
  • ‫8 יחידות GPU: ‏ 2,540 GiB (בגרסאות קודמות ל-1.32.2-gke.1182000)
‫NVIDIA H100 Mega (80GB)
nvidia-h100-mega-80gb
CPU
  • ‫8 יחידות GPU: ‏ 206 vCPU
זיכרון
  • ‫8 יחידות GPU: ‏ 1,795 GiB
שטח אחסון זמני
  • ‫8 יחידות GPU: ‏ 5,250 GiB
‫NVIDIA H100 (80GB)
nvidia-h100-80gb
CPU
  • ‫8 יחידות GPU: ‏ 206 vCPU
זיכרון
  • ‫8 יחידות GPU: ‏ 1,795 GiB
שטח אחסון זמני
  • ‫8 יחידות GPU: ‏ 5,250 GiB
‫NVIDIA A100 (40GB)
nvidia-tesla-a100
CPU
  • ‫1 GPU: ‏ 11 vCPU
  • ‫2 יחידות GPU: ‏ 22 vCPU
  • ‫4 יחידות GPU: ‏ 46 vCPU
  • ‫8 יחידות GPU: ‏ 94 vCPU
  • ‫16 יחידות GPU: ‏ 94 vCPU

סכום בקשות המעבד של כל DaemonSets שפועלים בצומת A100 GPU לא יכול להיות גדול מ-2 vCPU.

זיכרון
  • ‫1 GPU: ‏ ‎74 GiB
  • ‫2 יחידות GPU: ‏ 148 GiB
  • ‫4 יחידות GPU: ‏ 310 GiB
  • ‫8 יחידות GPU: ‏ ‎632 GiB
  • ‫16 יחידות GPU: ‏ 1,264 GiB

סכום בקשות הזיכרון של כל DaemonSets שפועלים בצומת GPU של A100 לא יכול לחרוג מ-14 GiB.

NVIDIA A100 (80GB)
nvidia-a100-80gb
CPU
  • ‫1 GPU: ‏ 11 vCPU
  • ‫2 יחידות GPU: ‏ 22 vCPU
  • ‫4 יחידות GPU: ‏ 46 vCPU
  • ‫8 יחידות GPU: ‏ 94 vCPU

סכום בקשות המעבד של כל DaemonSets שפועלים בצומת GPU‏ A100 (80GB) לא יכול לחרוג מ-2 vCPU.

זיכרון
  • ‫1 GPU: ‏ ‎148 GiB
  • ‫2 יחידות GPU: ‏ 310 GiB
  • ‫4 יחידות GPU: ‏ 632 GiB
  • ‫8 יחידות GPU: ‏ ‎1,264 GiB

סכום בקשות הזיכרון של כל DaemonSets שפועלים בצומת GPU‏ A100 (80GB) לא יכול לחרוג מ-14 GiB.

שטח אחסון זמני
  • ‫1 GPU: ‏ 280 GiB
  • ‫2 יחידות GPU: ‏ ‎585 GiB
  • ‫4 יחידות GPU: ‏ 1,220 GiB
  • ‫8 יחידות GPU: ‏ 2,540 GiB
NVIDIA RTX PRO 6000
nvidia-rtx-pro-6000
CPU
  • ‫1/8 GPU: ‏ 6 vCPU
  • ‫1/4 GPU: ‏ 12 vCPU
  • ‫1/2 GPU: ‏ 24 vCPU
  • ‫1 GPU: ‏ 48 vCPU
  • ‫2 יחידות GPU: ‏ 96 vCPU
  • ‫4 יחידות GPU: ‏ 192 vCPU
  • ‫8 יחידות GPU: ‏ 384 vCPU
זיכרון
  • ‫1/8 GPU: ‏ ‎22 GiB
  • ‫1/4 GPU: ‏ ‎45 GiB
  • ‫1/2 GPU: ‏ 90 GiB
  • ‫1 GPU: ‏ 180 GiB
  • ‫2 יחידות GPU: ‏ 360 GiB
  • ‫4 יחידות GPU: ‏ 720 GiB
  • ‫8 יחידות GPU: ‏ 1,440 GiB
שטח אחסון זמני
  • ‫1/8 GPU: ‏ ‎0 GiB (אין תמיכה באחסון זמני)
  • ‫1/4 GPU: ‏ ‎375 GiB
  • ‫1/2 GPU: ‏ 750 GiB
  • ‫1 GPU: ‏ 1,500 GiB
  • ‫2 יחידות GPU: ‏ 3 TiB
  • ‫4 יחידות GPU: ‏ 6 TiB
  • ‫8 יחידות GPU: ‏ 12 TiB
NVIDIA L4
nvidia-l4
CPU
  • ‫1 GPU: ‏ 31 vCPU
  • ‫2 יחידות GPU: ‏ 23 vCPU
  • ‫4 יחידות GPU: ‏ 47 vCPU
  • ‫8 יחידות GPU: ‏ 95 מעבדי CPU וירטואליים

סכום בקשות המעבד של כל DaemonSets שפועלים בצומת L4 GPU לא יכול לעלות על 2 vCPU.

זיכרון
  • ‫GPU אחד: 115 GiB
  • ‫2 יחידות GPU: ‏ 83 GiB
  • ‫4 יחידות GPU: ‏ 177 GiB
  • ‫8 יחידות GPU: ‏ ‎363 GiB

סכום בקשות הזיכרון של כל ה-DaemonSets שפועלים בצומת L4 GPU לא יכול להיות גבוה מ-14 GiB.

NVIDIA Tesla T4
nvidia-tesla-t4
CPU
  • ‫1 GPU: ‏ 46 vCPU
  • ‫2 יחידות GPU: ‏ 46 vCPU
  • ‫4 יחידות GPU: ‏ 94 vCPU
זיכרון
  • ‫1 GPU: ‏ 287.5 GiB
  • ‫2 יחידות GPU: ‏ 287.5 GiB
  • ‫4 יחידות GPU: ‏ 587.5 GiB
‫Ironwood (TPU7x)
tpu7x
CPU
  • ‫tpu7x-standard-4t: ‏ 224 vCPU
זיכרון
  • ‫tpu7x-standard-4t: ‏ 992 GiB
שטח אחסון זמני ‫56 TiB
‫TPU v6e (תצוגה מקדימה)
tpu-v6e-slice
CPU
  • ‫ct6e-standard-1t: ‏ 44 vCPU
  • ‫ct6e-standard-4t: ‏ 180 vCPU
  • ‫ct6e-standard-8t: ‏ 180 vCPU
זיכרון
  • ‫ct6e-standard-1t: ‏ 176 GiB
  • ‫ct6e-standard-4t: ‏ 720 GiB
  • ‫ct6e-standard-8t: ‏ 1,440 GiB
שטח אחסון זמני ‫56 TiB
TPU v5e
tpu-v5-lite-podslice
CPU
  • טופולוגיה 1x1: ‏ 24 vCPU
  • טופולוגיה של 2x2: ‏ 112 vCPU
  • טופולוגיה של 2x4 (בקשה של 4 שבבים): 112 vCPU
  • טופולוגיה 2x4 (בקשה של 8 שבבים): 224 vCPU
  • טופולוגיית 4x4: ‏ 112 vCPU
  • טופולוגיית 4x8: ‏ 112 vCPU
  • טופולוגיה של 8x8: ‏ 112 vCPU
  • טופולוגיה של 8x16: ‏ 112 vCPU
  • טופולוגיה 16x16: ‏ 112 vCPU
זיכרון
  • טופולוגיה 1x1: ‏ 48 GiB
  • טופולוגיה 2x2: ‏ 192 GiB
  • טופולוגיה של 2x4 (בקשה של 4 שבבים): 192 GiB
  • טופולוגיה 2x4 (בקשה ל-8 שבבים): 384 GiB
  • טופולוגיה 4x4: ‏ 192 GiB
  • טופולוגיה של 4x8: ‏ 192 GiB
  • טופולוגיית 8x8: ‏ 192 GiB
  • טופולוגיה של 8x16: ‏ 192 GiB
  • טופולוגיה של 16x16: ‏ 192 GiB
שטח אחסון זמני ‫56 TiB
TPU v5p
tpu-v5p-slice
CPU ‫280 vCPU
זיכרון ‫448 GiB
שטח אחסון זמני ‫56 TiB
‫TPU v4
tpu-v4-podslice
CPU ‫240 vCPU
זיכרון ‫407 GiB
שטח אחסון זמני ‫56 TiB

מידע על בקשת מעבדי GPU ב-Autopilot Pods זמין במאמר פריסת עומסי עבודה של GPU ב-Autopilot.

בקשות למשאבים להפרדה של עומסי עבודה ולמשך זמן ממושך

בתרחישים הבאים, Autopilot אוכף ערכים גבוהים יותר לבקשות ברירת המחדל ולבקשות המינימום למשאבים:

  • אתם משתמשים בpodFamily כלל עדיפות בכל מחלקה מותאמת אישית של Autopilot Compute שאינה ברירת המחדל ברמת האשכול.
  • אתם פורסים עומסי עבודה שעומדים בשני הקריטריונים הבאים:
    • משתמשים באחת מהגדרות המחשוב הבאות:
      • פלטפורמת המחשוב שמותאמת לקונטיינרים שמוגדרת כברירת מחדל באשכולות של Autopilot.
      • כל ComputeClass מובנה של Autopilot.
      • podFamily כללי עדיפות ב-ComputeClass מותאם אישית של Autopilot, שהוא גם ברירת המחדל ברמת האשכול.
      • ‫ComputeClasses‏ Balanced או Scale-Out באשכולות של Autopilot.
    • אפשר לשנות את ההתנהגות של תזמון ופינוי ב-Kubernetes באחת מהדרכים הבאות:
      • אתם משתמשים בהפרדה של עומסי עבודה כדי לוודא ש-Pods מסוימים מוצבים רק בצמתים ספציפיים.
      • משתמשים בPod anti-affinity כדי למנוע הצבה משותפת של Pods באותו צומת.
      • אתם יכולים להשתמש בהערה כדי להאריך את זמן הריצה של Autopilot Pods, ולמנוע את ההוצאה שלהם מהמערכת בגלל שדרוגים אוטומטיים של הצמתים ואירועי הקטנה של קבוצת הצמתים, למשך עד שבעה ימים.

כברירת מחדל, אם הבקשות למשאבים נמוכות מהערך המינימלי המותר, Autopilot מגדיל את הבקשות למשאבים כדי לעמוד בערך המינימלי. יוצא מן הכלל להתנהגות הזו הוא Pod anti-affinity, שבו Autopilot דוחה את ה-Pod עם הודעת שגיאה.

בטבלה הבאה מתוארות בקשות ברירת המחדל ובקשות המינימום למשאבים שאפשר לציין בתרחישים האלה:

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

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

  • פלטפורמת מחשוב שמוגדרת כברירת מחדל ב-Autopilot
  • ‫ComputeClasses מובנים של Autopilot
  • podFamily כללים ב-ComputeClasses שמוגדרים כברירת מחדל ברמת האשכול
  • CPU: ‏ 0.5 vCPU
  • זיכרון: ‎2 GiB
  • CPU: ‏ 0.5 vCPU
  • זיכרון: ‎0.5 GiB
‫Pods שמשתמשים בכללי podFamily ב-ComputeClasses מותאמים אישית שאינם ברירת מחדל
  • CPU: ‏ 0.5 vCPU
  • זיכרון: ‎2 GiB
  • CPU: ‏ 0.5 vCPU
  • זיכרון: 0.5 GiB
‫Pods שמשנים את התנהגות התזמון או ההוצאה מהמערכת ומשתמשים ב-Balanced ComputeClass באשכולות Autopilot
  • מעבד: 2 vCPU
  • זיכרון: ‎8 GiB
  • CPU: 1 vCPU
  • זיכרון: 4 GiB
‫Pods שמשנים את התנהגות התזמון או ההוצאה מהמערכת ומשתמשים ב-Scale-Out ComputeClass באשכולות Autopilot
  • CPU: ‏ 0.5 vCPU
  • זיכרון: ‎2 GiB
  • CPU: ‏ 0.5 vCPU
  • זיכרון: ‎2 GiB

מאגרי תגים מסוג Init

Init containers פועלים ברצף, וכל init containers חייבים לסיים את הפעולה לפני ש-application containers יכולים להתחיל. בקטרי Autopilot, אם לא מציינים בקשות ל-CPU או לזיכרון עבור מאגרי init או אם לא מגדירים בקשות באופן מפורש ל-0,‏ Autopilot משנה את ה-Pods במהלך היצירה כדי להוסיף בקשות למשאבים לכל מאגר init. הבקשות שמוקצות לכל מאגר init שוות לסכום הבקשות של כל מאגרי האפליקציות ב-Pod. זו התנהגות ברירת המחדל.

ההתנהגות הזו שונה באשכולות רגילים, שבהם קונטיינרים של init משתמשים בכל המשאבים שלא הוקצו שזמינים בצומת שבו מתוזמן ה-Pod.

הקצאת משאבים אוטומטית למאגרי init

הקצאת המשאבים האוטומטית לקונטיינרים של init מתרחשת בזמן יצירת ה-Pod. מומלץ לא לציין באופן ידני בקשות למשאבים עבור קובצי ה-init container באשכולות Autopilot, כדי שכל קובץ container יקבל כברירת מחדל את כל המשאבים שזמינים ל-Pod.

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

  • בקשת המשאבים הגדולה ביותר של כל קובץ init container ב-Pod.
  • סכום הבקשות לכל מאגרי האפליקציות ב-Pod.

מידע נוסף זמין במאמר בנושא ניהול אוטומטי של משאבים ב-Autopilot.

הקצאת משאבים ידנית למאגרי init

אם אתם צריכים לשנות את בקשות המשאבים הקיימות עבור מאגרי האפליקציות כדי לנהל את העלויות והמשאבים, מומלץ לבצע אחת מהפעולות הבאות כדי לשנות את בקשות מאגר ה-init:

  • מעדכנים ידנית את בקשות המשאבים של קובץ האתחול כך שיתאימו למספר הבקשות הכולל החדש ב-Pod. כשמציינים באופן ידני את בקשות המשאבים, חשוב להביא בחשבון את הנקודות הבאות:
    • בקשות שקטנות מהמשאבים הכוללים של ה-Pod יכולות להגביל את קובץ האתחול של הקונטיינר.
    • בקשות שגבוהות מהמשאבים הכוללים של ה-Pod יכולות להגדיל את העלויות.
  • מסירים את הבקשות למשאבים כדי לאפשר ל-Autopilot לחשב אותן מחדש. כברירת מחדל, במצב Autopilot המערכת תקצה מחדש את המשאבים לכל מאגר init, על סמך סך המשאבים הנוכחיים שנדרשים על ידי כל מאגרי האפליקציות ב-Pod.

הגדרת מגבלות משאבים ב-Autopilot

ב-Kubernetes אפשר להגדיר גם את requests וגם את limits למשאבים במפרט ה-Pod. ההתנהגות של ה-Pods משתנה בהתאם לכך שlimits שונים מrequests, כמו שמתואר בטבלה הבאה:

הערכים שהוגדרו אופן הפעולה של הטייס האוטומטי
requests equal to limits התרמילים משתמשים במחלקת ה-QoS‏ Guaranteed.
requests set, limits not set

ההתנהגות תלויה בשאלה אם האשכול תומך בשימוש זמני במשאבים מעבר למכסה, באופן הבא:

  • אשכולות שתומכים בשימוש בקיבולת זמנית: אפשר להשתמש ב-Pods בקיבולת זמנית זמינה.
  • אשכולות שלא תומכים בשימוש חורג: ב-GKE, הערך של limits שווה לערך של requests

כדי לבדוק אם האשכול שלכם תומך בשימוש ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

requests לא מוגדר, limits מוגדר ב-Autopilot, הערך של requests מוגדר לערך של limits, שזו התנהגות ברירת המחדל של Kubernetes.

לפני:

resources:
  limits:
    cpu: "400m"

אחרי:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
requests פחות מ-limits

ההתנהגות תלויה בשאלה אם האשכול תומך בשימוש זמני במשאבים מעבר למכסה, באופן הבא:

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

כדי לבדוק אם האשכול שלכם תומך בשימוש ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

requests greater than limits ‫Autopilot מגדיר את requests לערך של limits.

לפני:

resources:
  requests:
    cpu: "450m"
  limits:
    cpu: "400m"

אחרי:

resources:
  requests:
    cpu: "400m"
  limits:
    cpu: "400m"
requests לא מוגדר, limits לא מוגדר

‫Autopilot מגדיר את requests לערכי ברירת המחדל של מחלקת המחשוב או של תצורת החומרה.

ההתנהגות של limits תלויה בשאלה אם האשכול תומך בשימוש זמני במשאבים מעבר למכסה, באופן הבא:

  • אשכולות שתומכים בשימוש ב-bursting: ‏ Autopilot לא מגדיר את limits.
  • אשכולות שלא תומכים בשימוש חורג: ב-GKE, הערך של limits שווה לערך של requests

כדי לבדוק אם האשכול שלכם תומך בשימוש ב-Bursting, אפשר לעיין במאמר בנושא זמינות של Bursting ב-GKE.

ברוב המקרים, כדאי להגדיר בקשות מתאימות למשאבים ומגבלות שוות לעומסי העבודה.

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

ניהול אוטומטי של משאבים ב-Autopilot

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

  • בקשות חסרות: אם לא מבקשים משאבים במאגרי תגים מסוימים, Autopilot מחיל את בקשות ברירת המחדל עבור מחלקת המחשוב או תצורת החומרה.
  • יחס בין CPU לזיכרון: מצב Autopilot מגדיל את המשאב הקטן יותר כדי שהיחס יהיה בטווח המותר.
  • אחסון זמני:‏ Autopilot משנה את בקשות האחסון הזמני כדי לעמוד בכמות המינימלית שנדרשת לכל מאגר. הערך המצטבר של בקשות האחסון בכל המאגרי נתונים לא יכול להיות גדול מהערך המקסימלי המותר. לפני גרסה 1.28.6-gke.1317000, מצב Autopilot מצמצם את האחסון הזמני המבוקש אם הערך חורג מהערך המקסימלי. בגרסה 1.28.6-gke.1317000 ואילך, מצב Autopilot דוחה את עומס העבודה.
  • בקשות מתחת למינימום: אם תבקשו פחות משאבים מהמינימום המותר להגדרת החומרה שנבחרה, Autopilot ישנה אוטומטית את ה-Pod כך שיבקש לפחות את ערך המשאב המינימלי.

כברירת מחדל, כש-Autopilot מגדיל באופן אוטומטי את המשאב כדי לעמוד בערך מינימלי או בערך ברירת המחדל של המשאב, ‏ GKE מקצה את הקיבולת הנוספת לקונטיינר הראשון במניפסט של ה-Pod. ב-GKE בגרסה 1.27.2-gke.2200 ואילך, אפשר להגדיר ב-GKE להקצות את המשאבים הנוספים לקונטיינר ספציפי. לשם כך, מוסיפים את השורה הבאה לשדה annotations במניפסט של ה-Pod:

autopilot.gke.io/primary-container: "CONTAINER_NAME"

מחליפים את CONTAINER_NAME בשם הקונטיינר.

דוגמאות לשינוי משאבים

בתרחיש לדוגמה הבא אפשר לראות איך Autopilot משנה את הגדרות עומס העבודה כדי לעמוד בדרישות של ה-Pods והקונטיינרים הפועלים.

קונטיינר יחיד עם פחות מ-0.05 vCPU

מספר מאגר התגים הבקשה המקורית בקשה ששונתה
1 מעבד: 30 mCPU
זיכרון: 0.5 GiB
שטח אחסון זמני: 10 MiB
CPU: 50 mCPU
Memory: 0.5 GiB
Ephemeral storage: 10 MiB

כמה מאגרי תגים עם סה"כ מעבד (CPU) < 0.05 vCPU

מספר מאגר התגים בקשות מקוריות בקשות ששונו
1 מעבד: 10 mCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
CPU: 30 mCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
2 מעבד: 10 mCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
מעבד: 10 mCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
3 מעבד: 10 mvCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
מעבד: 10 mCPU
זיכרון: 0.5 GiB
אחסון זמני: 10 MiB
סך כל המשאבים של ה-Pod CPU: 50 mCPU
זיכרון: 1.5 GiB
נפח אחסון זמני: 30 MiB

קונטיינר יחיד עם זיכרון נמוך מדי בשביל המעבד המבוקש

בדוגמה הזו, הזיכרון נמוך מדי ביחס לכמות המעבד (מינימום ‎1 vCPU:1 GiB). היחס המינימלי המותר בין מעבד לזיכרון הוא 1:1. אם היחס נמוך יותר, בקשת הזיכרון גדלה.

מספר מאגר התגים הבקשה המקורית בקשה ששונתה
1 מעבד: 4 vCPU
זיכרון: 1 GiB
אחסון זמני: 10 MiB
מעבד: 4 vCPU
זיכרון: 4 GiB
אחסון זמני: 10 MiB
סך כל המשאבים של ה-Pod מעבד: 4 vCPU
זיכרון: 4 GiB
אחסון זמני: 10 MiB

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