הגדרת יצירה אוטומטית של מאגר צמתים

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

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

מגבלות

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

  • כל המגבלות של מידרוג אוטומטי של אשכולות חלות גם על יצירה אוטומטית של מאגרי צמתים.
  • באשכולות שיש בהם יותר מ-200 מאגרי צמתים, יכול להיות שהזמן שלוקח להגדיל או להקטין את מספר המכונות יהיה ארוך יותר. כל הגדרה שמפעילה יצירה של מאגר צמתים חדש, כמו הפרדת עומסי עבודה או שימוש בכמה ComputeClasses, מגדילה את המספר הזה. מידע נוסף על מגבלות של אשכולות מופיע בקטע מגבלות ושיטות מומלצות במאמר "תכנון אשכולות גדולים".
  • כל מגבלות המשאבים שאתם מגדירים לאשכול כשאתם מפעילים הקצאת צמתים אוטומטית חלות גם על מאגרי הצמתים ש-GKE יוצר בשביל ComputeClasses.
  • ההגדרות הבאות לא נתמכות ב-ComputeClasses:
    • שדרוגי מתח או שדרוגי כחול-ירוק.
    • תקינות הצומת ואתחול מאובטח.
  • כדי להפעיל יצירה אוטומטית של מאגרי צמתים ל-ComputeClass בגרסאות GKE שקודמות ל-1.33.3-gke.1136000, צריך להפעיל גם הקצאת צמתים אוטומטית ברמת האשכול. המגבלה הזו לא חלה על גרסה 1.33.3-gke.1136000 של GKE ואילך.

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

לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:

  • מפעילים את Google Kubernetes Engine API.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם כבר התקנתם את ה-CLI של gcloud, הריצו את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שבגרסאות קודמות של ה-CLI של gcloud אי אפשר להריץ את הפקודות שבמסמך הזה.

דרישות

אתם יכולים להפעיל יצירה אוטומטית של מאגרי צמתים לכל האשכול בכל גרסה של GKE, באמצעות התכונה "הקצאת צמתים אוטומטית". אם אתם רוצים להשתמש ב-ComputeClass כדי להפעיל יצירה אוטומטית של מאגרי צמתים ברמת עומס העבודה, ואתם לא רוצים להפעיל הקצאת צמתים אוטומטית, האשכול צריך להיות בגרסה 1.33.3-gke.1136000 או גרסה חדשה יותר של GKE.

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

הפעלת יצירה אוטומטית ברמת עומס העבודה

אתם יכולים להפעיל יצירה אוטומטית של מאגרי צמתים לעומסי עבודה ספציפיים באשכול באמצעות ComputeClass. השדה nodePoolAutoCreation במפרט של ComputeClass קובע אם GKE יכול ליצור מאגרי צמתים חדשים לפודים שבוחרים את ה-ComputeClass הזה. ב-GKE מגרסה 1.33.3-gke.1136000 ואילך, אפשר להפעיל יצירה אוטומטית של מאגרי צמתים ל-ComputeClass גם אם לא מופעלת באשכול הקצאת צמתים אוטומטית. בגרסאות שקודמות ל-1.33.3-gke.1136000, צריך גם להפעיל הקצאת צמתים אוטומטית ברמת האשכול.

כדי להפעיל יצירה אוטומטית של מאגר צמתים ל-ComputeClass, פועלים לפי השלבים הבאים:

  1. משתמשים באשכול Standard חדש או קיים בגרסה 1.33.3-gke.1136000 ואילך.

    אפשר גם ליצור אשכול Standard חדש.

  2. אם האשכול לא עומד בדרישות שבשלב הקודם, מפעילים הקצאת צמתים אוטומטית ברמת האשכול.

  3. שומרים את ה-ComputeClass לדוגמה הבא כקובץ YAML:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      -  machineFamily: n4
      -  machineFamily: n2
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את COMPUTE_CLASS בשם של ה-ComputeClass החדש. מידע נוסף על השדות שזמינים ב-ComputeClasses מופיע במאמר ComputeClass CustomResourceDefinition.

  4. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

  5. שומרים את ה-Deployment לדוגמה הבא, שבוחר ComputeClass, בתור helloweb-deploy.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
        spec:
          nodeSelector:
            # Replace with the name of a compute class
            cloud.google.com/compute-class: COMPUTE_CLASS 
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: "250m"
                memory: "1Gi"

  6. יוצרים את הפריסה באשכול:

    kubectl apply -f helloweb-deploy.yaml
    
  7. כדי לוודא ש-GKE יצר מאגר צמתים חדש לפוד, מציגים את רשימת מאגרי הצמתים באשכול:

    gcloud container node-pools list \
        --cluster=CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫CONTROL_PLANE_LOCATION: האזור או התחום של מישור הבקרה של האשכול, למשל us-central1 או us-central1-a.

הפעלת הקצאת צמתים אוטומטית (NAP) ברמת האשכול

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

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

כדי ליצור מאגרי צמתים באופן אוטומטי בגרסאות GKE שקודמות ל-1.33.3-gke.1136000, צריך לבצע את השלבים שבקטע הזה. אפשר גם להפעיל הקצאת צמתים אוטומטית באשכול קיים, על ידי עריכת הגדרות האשכול במסוף Google Cloud .

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

המסוף

  1. נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .

    יצירת אשכול Kubernetes

  2. בדף Cluster basics, נותנים שם לאשכול החדש ובוחרים מיקום.

  3. בחלונית הניווט, לוחצים על הגדרות מתקדמות.

  4. בשורה Node autoprovisioning, לוחצים על Edit configuration.

  5. מסמנים את התיבה Enable node auto-provisioning. ‫מופיע הקטע Limits.

  6. מציינים מגבלות למעבד (CPU) ולזיכרון.

  7. לוחצים על Save.

  8. לוחצים על יצירה.

gcloud

gcloud container clusters create CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning \
    --min-cpu=MINIMUM_CPU \
    --min-memory=MINIMUM_MEMORY \
    --max-cpu=MAXIMUM_CPU \
    --max-memory=MAXIMUM_MEMORY \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/devstorage.read_only

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLUSTER_NAME: שם האשכול שבו רוצים להפעיל את הקצאת הצמתים האוטומטית.
  • ‫CONTROL_PLANE_LOCATION: האזור או התחום של מישור הבקרה של האשכול, למשל us-central1 או us-central1-a.
  • ‫MINIMUM_CPU: המספר המינימלי של הליבות באשכול.
  • ‫MINIMUM_MEMORY: קיבולת הזיכרון המינימלית באשכול, ב-GiB.
  • ‫MAXIMUM_CPU: המספר המקסימלי של הליבות באשכול. המגבלה הזו חלה על סך כל ליבות המעבד (CPU) בכל הצמתים החדשים והקיימים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
  • ‫MAXIMUM_MEMORY: קיבולת הזיכרון המקסימלית באשכול, ב-GiB. המגבלה הזו חלה על סך קיבולת הזיכרון בכל מאגרי הצמתים החדשים והקיימים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.

שינוי ההגדרות באמצעות קובץ תצורה של הקצאת צמתים אוטומטית (NAP)

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

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

  1. בכלי לעריכת טקסט, יוצרים קובץ YAML בנתיב שאפשר לגשת אליו באמצעות Google Cloud CLI.
  2. מוסיפים את ההגדרות שרוצים לקבוע או לשנות, כמו בדוגמה הבאה:

    resourceLimits:
      - resourceType: 'cpu'
        minimum: 4
        maximum: 10
      - resourceType: 'memory'
        maximum: 64
      - resourceType: 'nvidia-tesla-t4'
        maximum: 4
    management:
      autoRepair: true
      autoUpgrade: true
    shieldedInstanceConfig:
      enableSecureBoot: true
      enableIntegrityMonitoring: true
    

    בדוגמה הזו, אלה ההגדרות של הקצאת צמתים אוטומטית:

    • ‫resourceLimits: מגדיר את מגבלות המשאבים של המעבד (CPU), קיבולת הזיכרון ומעבדי ה-GPU מסוג NVIDIA T4 באשכול. המגבלות האלה חלות על סך קיבולת המשאבים באשכול, כולל במאגרי צמתים שנוצרו באופן ידני.
    • ‫management: הפעלה של תיקון אוטומטי ושדרוג אוטומטי של צמתים בכל מאגרי הצמתים החדשים שנוצרו באופן אוטומטי באשכול.
    • ‫shieldedInstanceConfig: הפעלה של אתחול מאובטח ומעקב אחרי תקינות הצמתים בכל מאגרי הצמתים החדשים שנוצרו באופן אוטומטי באשכול.
  3. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

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

הגדרת מגבלות למשאבים בהקצאת צמתים אוטומטית (NAP)

כשמשתמשים בהקצאת צמתים אוטומטית ברמת האשכול, צריך להגדיר מגבלות לכמות הכוללת של המשאבים שיכולים להיות לאשכול בכל מאגרי הצמתים שלו. כדי להפעיל הקצאת צמתים אוטומטית באשכול, צריך לציין מגבלות לקיבולת המעבד (CPU) והזיכרון באשכול. בנוסף, כדי להשתמש בסוגים אחרים של משאבים מצורפים כמו GPUs ו-TPUs, צריך לציין מגבלות למשאבים האלה. המגבלות האלה נדרשות רק אם מפעילים את ההגדרה של הקצאת צמתים אוטומטית באשכול. אם אתם משתמשים רק ב-ComputeClasses כדי ליצור מאגרי צמתים באופן אוטומטי, אתם לא צריכים להגדיר מגבלות על משאבים.

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

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

כדי להגדיר מגבלות משאבים לאשכול קיים, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. נכנסים לדף Kubernetes clusters במסוף Google Cloud .

    כניסה לאשכולות של Kubernetes

  2. לוחצים על שם האשכול. הדף Cluster details נפתח.

  3. לוחצים על הכרטיסייה פרטים.

  4. בקטע Automation, בשורה הקצאת צמתים אוטומטית (NAP) לוחצים על Edit. החלונית עריכת הקצאת צמתים אוטומטית נפתחת.

  5. מסמנים את התיבה Enable node auto-provisioning.

  6. בקטע Limits, מציינים את ערכי המינימום והמקסימום של קיבולת המעבד (CPU) והזיכרון באשכול.

  7. כדי להגדיר מגבלות למשאב אחר, כמו GPUs או TPUs:

    1. לוחצים על הוספת מקור מידע.
    2. ברשימה הנפתחת Resource type, בוחרים את דגם ה-GPU או את סוג המכונה של ה-TPU, למשל NVIDIA A100 80GB או ct5p.
    3. מציינים ערכי מינימום ומקסימום למשאב.
  8. אופציונלי: בקטע Node pool locations, בוחרים אזורים ספציפיים שבהם GKE ייצור צמתים. לדוגמה, אם אתם מתכננים להריץ עומסי עבודה של GPU, בחרו אזורים עם זמינות גבוהה לסוג ה-GPU שבחרתם.

  9. לוחצים על שמירת השינויים.

gcloud

מריצים אחת מהפקודות הבאות:

  • מגדירים את מגבלות המשאבים של המעבד (CPU) והזיכרון:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --min-cpu=MINIMUM_CPU \
        --min-memory=MINIMUM_MEMORY \
        --max-cpu=MAXIMUM_CPU \
        --max-memory=MAXIMUM_MEMORY
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫MINIMUM_CPU: המספר המינימלי של הליבות באשכול.
    • ‫MINIMUM_MEMORY: קיבולת הזיכרון המינימלית באשכול, ב-GiB.
    • ‫MAXIMUM_CPU: המספר המקסימלי של הליבות באשכול. המגבלה הזו חלה על סך כל ליבות המעבד (CPU) בכל מאגרי הצמתים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
    • ‫MAXIMUM_MEMORY: קיבולת הזיכרון המקסימלית באשכול, ב-GiB. המגבלה הזו חלה על סך כל קיבולת הזיכרון בכל מאגרי הצמתים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
  • מגדירים את מגבלות המשאבים של ה-GPU:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --min-cpu=MINIMUM_CPU \
        --min-memory=MINIMUM_MEMORY \
        --max-cpu=MAXIMUM_CPU \
        --max-memory=MAXIMUM_MEMORY \
        --min-accelerator=type=GPU_TYPE,count=MINIMUM_GPU_COUNT \
        --max-accelerator=type=GPU_TYPE,count=MAXIMUM_GPU_COUNT
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫GPU_TYPE: סוג ה-GPU שרוצים להגדיר לו מגבלה, למשל nvidia-l4.
    • ‫MINIMUM_GPU_COUNT: המספר המינימלי של מעבדי GPU מהסוג שצוין שיכולים להיות באשכול.
    • ‫MAXIMUM_GPU_COUNT: המספר המקסימלי של מעבדי GPU מהסוג שצוין שיכולים להיות באשכול.
  • מגדירים את מגבלות המשאבים של ה-TPU:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --min-cpu=MINIMUM_CPU \
        --min-memory=MINIMUM_MEMORY \
        --max-cpu=MAXIMUM_CPU \
        --max-memory=MAXIMUM_MEMORY \
        --min-accelerator=type=TPU_TYPE,count=MINIMUM_TPU_COUNT \
        --max-accelerator=type=TPU_TYPE,count=MAXIMUM_TPU_COUNT
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫TPU_TYPE: סוג ה-TPU שרוצים להגדיר לו מגבלה. אלה הערכים הנתמכים:
      • tpu-v4-podslice: TPU v4.
      • ‫tpu-v5-lite-podslice: TPU v5e עם סוגי מכונות שמתחילים ב-ct5lp-.
      • ‫tpu-v5p-slice: TPU v5e עם סוגי מכונות שמתחילים ב-ct5p-.
      • tpu-v6e-slice: TPU Trillium.
    • ‫MINIMUM_TPU_COUNT: המספר המינימלי של שבבי TPU מהסוג שצוין שיכולים להיות באשכול. אם הערך שציינתם גדול ממספר שבבי ה-TPU בפרוסת TPU עם כמה מארחים, יכול להיות שפרוסת ה-TPU לא תצומצם אנכית.
    • ‫MAXIMUM_TPU_COUNT: המספר המקסימלי של שבבי TPU מהסוג שצוין שיכולים להיות באשכול. בפרוסות TPU עם כמה מארחים, צריך לציין ערך שגדול ממספר הצ'יפים בכל פרוסה כדי ש-GKE יוכל לשנות את קנה המידה של הפרוסה באופן אטומי. מספר הצ'יפים בפרוסה הוא המכפלה של טופולוגיית ה-TPU. לדוגמה, אם הטופולוגיה היא 2x2x2, מספר הצ'יפים בפרוסה הוא 8, כלומר הערך של MAXIMUM_TPU_COUNT חייב להיות גדול מ-8.

קובץ תצורה

  1. בקובץ התצורה, מציינים את אחת מקבוצות השדות הבאות בשדה resourceLimits:

    • מגדירים את מגבלות המשאבים של המעבד (CPU) והזיכרון:

      resourceLimits:
        - resourceType: 'cpu'
          minimum: MINIMUM_CPU
          maximum: MAXIMUM_CPU
        - resourceType: 'memory'
          minimum: MINIMUM_MEMORY
          maximum: MAXIMUM_MEMORY
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫MINIMUM_CPU: המספר המינימלי של הליבות באשכול.
      • ‫MINIMUM_MEMORY: קיבולת הזיכרון המינימלית באשכול, ב-GiB.
      • ‫MAXIMUM_CPU: המספר המקסימלי של הליבות באשכול. המגבלה הזו חלה על סך כל ליבות המעבד (CPU) בכל מאגרי הצמתים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
      • ‫MAXIMUM_MEMORY: קיבולת הזיכרון המקסימלית באשכול, ב-GiB. המגבלה הזו חלה על סך כל קיבולת הזיכרון בכל מאגרי הצמתים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
    • מגדירים את מגבלות המשאבים של ה-GPU:

      resourceLimits:
        - resourceType: 'cpu'
          minimum: MINIMUM_CPU
          maximum: MAXIMUM_CPU
        - resourceType: 'memory'
          minimum: MINIMUM_MEMORY
          maximum: MAXIMUM_MEMORY
        - resourceType: 'GPU1_TYPE'
          minimum: MINIMUM_GPU1_COUNT
          maximum: MAXIMUM_GPU1_COUNT
        - resourceType: 'GPU2_TYPE'
          minimum: MINIMUM_GPU2_COUNT
          maximum: MAXIMUM_GPU2_COUNT
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫GPU1_TYPE,GPU2_TYPE: סוגי ה-GPU שרוצים להגדיר להם מגבלות, למשל nvidia-l4.
      • ‫MINIMUM_GPU1_COUNT,MINIMUM_GPU2_COUNT: המספר המינימלי של יחידות GPU מהסוגים שצוינו שיכולות להיות באשכול.
      • ‫MAXIMUM_GPU1_COUNT,MAXIMUM_GPU2_COUNT: המספר המקסימלי של יחידות GPU מהסוגים שצוינו שיכולות להיות באשכול.
    • מגדירים את מגבלות המשאבים של ה-TPU:

      resourceLimits:
        - resourceType: 'cpu'
          minimum: MINIMUM_CPU
          maximum: MAXIMUM_CPU
        - resourceType: 'memory'
          minimum: MINIMUM_MEMORY
          maximum: MAXIMUM_MEMORY
        - resourceType: 'TPU1_TYPE'
          minimum: MINIMUM_TPU1_COUNT
          maximum: MAXIMUM_TPU1_COUNT
        - resourceType: 'TPU2_TYPE'
          minimum: MINIMUM_TPU2_COUNT
          maximum: MAXIMUM_TPU2_COUNT
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫TPU1_TYPE,TPU2_TYPE: סוגי ה-TPU שרוצים להגדיר להם מגבלות. אלה הערכים הנתמכים:
        • tpu-v4-podslice: TPU v4.
        • ‫tpu-v5-lite-podslice: TPU v5e עם סוגי מכונות שמתחילים ב-ct5lp-.
        • ‫tpu-v5p-slice: TPU v5e עם סוגי מכונות שמתחילים ב-ct5p-.
        • tpu-v6e-slice: TPU Trillium.
      • ‫MINIMUM_TPU1_COUNT,MINIMUM_TPU2_COUNT: המספר המינימלי של שבבי TPU מהסוג שצוין שיכולים להיות באשכול. אם הערך שציינתם גדול ממספר שבבי ה-TPU בפרוסת TPU עם כמה מארחים, יכול להיות שפרוסת ה-TPU לא תצומצם אנכית.
      • ‫MAXIMUM_TPU1_COUNT,MAXIMUM_TPU2_COUNT: המספר המקסימלי של שבבי TPU מהסוג שצוין שיכולים להיות באשכול. בפרוסות TPU עם כמה מארחים, צריך לציין ערך שגדול ממספר הצ'יפים בכל פרוסה, כדי ש-GKE יוכל לשנות את הגודל של הפרוסה באופן אטומי. מספר הצ'יפים בפרוסה הוא המכפלה של הטופולוגיה של ה-TPU. לדוגמה, אם הטופולוגיה של TPU1_TYPE היא 2x2x2, מספר הצ'יפים בפרוסה הוא 8, כלומר הערך של MAXIMUM_TPU1_COUNT חייב להיות גדול מ-8.
  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

סימון מאגרי צמתים קיימים כמאגרים שנוצרו באופן אוטומטי

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

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

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

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning

מחליפים את NODE_POOL_NAME בשם של מאגר הצמתים.

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

‫GKE משתמש במפרטים של ComputeClasses ו-Pod כדי לקבוע את סוגי הצמתים שיכולים להריץ בצורה אופטימלית את ה-Pods בהמתנה. אתם יכולים להגדיר את ברירות המחדל ש-GKE יחיל על מאגרי הצמתים שנוצרו באופן אוטומטי, כמו חשבון שירות מותאם אישית של ניהול זהויות והרשאות גישה (IAM) לצמתים או הגדרות מותאמות אישית של דיסק האתחול. הגדרות ברירת המחדל האלה מבטלות את ערכי ברירת המחדל התואמים ש-Google מגדירה לאשכולות שלכם. לדוגמה, אתם יכולים להגדיר תמונת צומת של Ubuntu כברירת המחדל למאגרי צמתים שנוצרים באופן אוטומטי, וכך לשנות את תמונת הצומת של מערכת ההפעלה שמותאמת לקונטיינרים, שמוגדרת כברירת המחדל ב-GKE.

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

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

בקטעים הבאים מוסבר איך לקבוע הגדרות ברירת מחדל ספציפיות.

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

בוחרים באחת מהאפשרויות הבאות:

ComputeClass

  1. במניפסט של ComputeClass, משתמשים בשדה nodePoolConfig.imageType. השדה הזה זמין ב-GKE מגרסה 1.32.4-gke.1198000 ואילך.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - machineFamily: n4
      - machineFamily: n4d
      nodePoolConfig:
        imageType: IMAGE_TYPE
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את IMAGE_TYPE בערך של תמונת הצומת, שיכול להיות אחד מהבאים:

    • cos_containerd: מערכת הפעלה שמותאמת לקונטיינרים עם containerd.
    • ‫ubuntu_containerd: Ubuntu עם containerd.
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

כדי להגדיר את קובץ האימג' של ברירת המחדל של הצומת בשורת הפקודה, משתמשים בדגל ‎--autoprovisioning-image-type:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning \
    --autoprovisioning-image-type=IMAGE_TYPE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫CLUSTER_NAME: שם האשכול.
  • ‫IMAGE_TYPE: תמונת הצומת, שיכולה להיות אחת מהאפשרויות הבאות:
    • cos_containerd: מערכת הפעלה שמותאמת לקונטיינרים עם containerd.
    • ‫ubuntu_containerd: Ubuntu עם containerd.

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

  1. בקובץ התצורה, מציינים את השדה imageType:

      imageType: 'IMAGE_TYPE'
    

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

הגדרת חשבון השירות של IAM שמוגדר כברירת מחדל לצמתים

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

ComputeClass

  1. במניפסט של Computeclass, משתמשים בשדה nodePoolConfig.serviceAccount. השדה הזה זמין ב-GKE מגרסה 1.31.4-gke.1072000 ואילך.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - machineFamily: n4
      - machineFamily: n4d
      nodePoolConfig:
        serviceAccount: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SERVICE_ACCOUNT_NAME: השם של חשבון השירות ב-IAM, כמו my-node-account.
    • ‫PROJECT_ID: מזהה הפרויקט של חשבון השירות.
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

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

כדי להגדיר את חשבון השירות שמוגדר כברירת מחדל ואת היקפי הגישה בשורת הפקודה, משתמשים בדגלים ‎--autoprovisioning-service-account ו-‎--autoprovisioning-scopes:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning \
    --autoprovisioning-service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append

מחליפים את מה שכתוב בשדות הבאים:

  • ‫SERVICE_ACCOUNT_NAME: השם של חשבון השירות ב-IAM, כמו my-node-account.
  • ‫PROJECT_ID: מזהה הפרויקט של חשבון השירות.

כדי להגדיר את חשבון השירות שמוגדר כברירת מחדל ואת היקפי הגישה בקובץ תצורה:

  1. בקובץ התצורה, מציינים את השדות serviceAccount ו-scopes:

    serviceAccount: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    scopes: https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append
    

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

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

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

  • אשכולות אזוריים: GKE יוצר צמתים בשלושה אזורים אקראיים באזור של האשכול.
  • אשכולות ברמת האזור: GKE יוצר צמתים באותו אזור שבו נמצא מישור הבקרה של האשכול.

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

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

ComputeClass

  1. במניפסט של ComputeClass, משתמשים בשדה spec.priorityDefaults.location.zones. השדה הזה זמין ב-GKE מגרסה 1.33.1-gke.1545000 ואילך.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorityDefaults:
        location:
          zones: ['ZONE1','ZONE2','...']
      priorities:
      - machineFamily: n4
      - machineFamily: n4d
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את ZONE1,ZONE2,... ברשימה מופרדת בפסיקים של אזורי ברירת המחדל לצמתים שנוצרו באופן אוטומטי, כמו us-central1-a','us-central1-b', 'us-central1-f'. GKE משתמש באזורים האלה אם כללים ספציפיים בשדה spec.priorities לא כוללים רשימה מפורשת של אזורים.

    אופציונלי: אם אתם מקצים מכונות וירטואליות של TPU, השתמשו באזור AI, כמו us-central1-ai1a. אזורי AI הם מיקומים ייעודיים שמותאמים לעומסי עבודה של AI/ML בתוך Google Cloud אזורים.

  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

כדי להגדיר את אזורי ברירת המחדל ליצירה אוטומטית של מאגרי צמתים בשורת הפקודה, משתמשים בדגל ‎--autoprovisioning-locations:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning \
    --autoprovisioning-locations=ZONE1,ZONE2,...

מחליפים את ZONE1,ZONE2,... ברשימה מופרדת בפסיקים של אזורי ברירת המחדל לצמתים שנוצרו באופן אוטומטי, כמו us-central1-a','us-central1-b', 'us-central1-f'.

כדי להגדיר את אזורי ברירת המחדל ליצירה אוטומטית של מאגרי צמתים באמצעות קובץ תצורה:

  1. מציינים את השדה autoprovisioningLocations בקובץ התצורה:

    autoprovisioningLocations:
    - ZONE1
    - ZONE2
    

    מחליפים את ZONE1,ZONE2 באזורי ברירת המחדל של צמתים שנוצרו באופן אוטומטי, כמו us-central1-a ו-us-central1-b.

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

הגדרת מפתחות הצפנה בניהול הלקוח (CMEK) להצפנה של דיסק אתחול

אתם יכולים לציין מפתח הצפנה בניהול הלקוח (CMEK) ב-Cloud Key Management Service, שבו GKE משתמש כדי להצפין את דיסקי האתחול של צמתים במאגרי צמתים שנוצרו באופן אוטומטי. צריך ליצור את המפתח לפני שמשתמשים בו ליצירה אוטומטית של מאגר צמתים. כדי להגדיר CMEK לדיסקי האתחול של הצומת, בוחרים באחת מהאפשרויות הבאות:

ComputeClass

ב-ComputeClasses, צריך לציין את המפתח בכל כלל עדיפות בשדה spec.priorities ב-ComputeClass.

  1. במניפסט של ComputeClass, משתמשים בשדה priorities.storage.bootDiskKMSKey:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - machineFamily: n4
        storage:
          bootDiskKMSKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
      - machineFamily: n4d
        storage:
          bootDiskKMSKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫KEY_PROJECT_ID: מזהה הפרויקט שבו נמצא המפתח.
    • ‫KEY_LOCATION: המיקום שבו נמצא אוסף המפתחות.
    • ‫KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
    • ‫KEY_NAME: שם המפתח.
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

  1. מציינים את השדה bootDiskKmsKey בקובץ התצורה:

    bootDiskKmsKey: projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫KEY_PROJECT_ID: מזהה הפרויקט שבו נמצא המפתח.
    • ‫KEY_LOCATION: המיקום שבו נמצא אוסף המפתחות.
    • ‫KEY_RING: השם של אוסף המפתחות שמכיל את המפתח.
    • ‫KEY_NAME: שם המפתח.

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

הגדרת תקינות הצומת והפעלה מאובטחת

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

  1. מציינים את השדה shieldedInstanceConfig בקובץ התצורה:

    shieldedInstanceConfig:
      enableSecureBoot: true
      enableIntegrityMonitoring: true
    

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

הגדרת תיקון אוטומטי ושדרוג אוטומטי של צמתים

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

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

ComputeClass

  1. במניפסט של ComputeClass, משתמשים בשדה autoRepair ובשדה autoUpgrade שבשדה spec.nodePoolConfig. השדות האלה זמינים ב-GKE מגרסה 1.34.0-gke.2201000 ואילך.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      nodePoolConfig:
        autoRepair: true
        autoUpgrade: true
      priorities:
      - machineFamily: n4
      - machineFamily: n4d
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

  • כדי להפעיל את ההגדרות של תיקון אוטומטי ושדרוג אוטומטי בשורת הפקודה, משתמשים בדגלים --enable-autoprovisioning-autorepair ו---enable-autoprovisioning-autoupgrade:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --enable-autoprovisioning-autorepair \
        --enable-autoprovisioning-autoupgrade
    
  • כדי להשבית את ההגדרות של תיקון אוטומטי ושדרוג אוטומטי בשורת הפקודה, משתמשים בדגלים --no-enable-autoprovisioning-autorepair ו---no-enable-autoprovisioning-autoupgrade:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --no-enable-autoprovisioning-autorepair \
        --no-enable-autoprovisioning-autoupgrade
    
  • כדי לשנות את ההגדרות של תיקון אוטומטי ושדרוג אוטומטי של צמתים באמצעות קובץ תצורה:

    1. מציינים את השדות management.autoRepair ו-management.autoUpgrade בקובץ התצורה:

      management:
        autoRepair: true
        autoUpgrade: true
      

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

    2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

      gcloud container clusters create CLUSTER_NAME \
          --location=CONTROL_PLANE_LOCATION \
          --enable-autoprovisioning \
          --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫CLUSTER_NAME: שם האשכול.
      • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

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

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

  • כדי לציין את הגדרות השדרוג המתפרץ בשורת הפקודה, משתמשים בדגלים --autoprovisioning-max-surge-upgrade ו---autoprovisioning-max-unavailable-upgrade:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-max-surge-upgrade=MAX_SURGE \
        --autoprovisioning-max-unavailable-upgrade=MAX_UNAVAILABLE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫MAX_SURGE: המספר המקסימלי של צמתים שאפשר להוסיף למאגר הצמתים במהלך השדרוגים.
    • ‫MAX_UNAVAILABLE: המספר המקסימלי של צמתים במאגר הצמתים שלא יכולים להיות זמינים בו-זמנית במהלך השדרוגים.
  • כדי לציין את הגדרות השדרוג באמצעות קובץ תצורה:

    1. מציינים את השדות upgradeSettings.maxSurgeUpgrade ו-upgradeSettings.maxUnavailableUpgrade בקובץ התצורה:

      upgradeSettings:
        maxSurgeUpgrade: MAX_SURGE
        maxUnavailableUpgrade: MAX_UNAVAILABLE
      

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

    2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

      gcloud container clusters create CLUSTER_NAME \
          --location=CONTROL_PLANE_LOCATION \
          --enable-autoprovisioning \
          --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
      

      מחליפים את מה שכתוב בשדות הבאים:

      • ‫CLUSTER_NAME: שם האשכול.
      • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

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

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autoprovisioning \
    --enable-autoprovisioning-surge-upgrade

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

שימוש בשדרוגים כחול-ירוק למאגרי צמתים חדשים שנוצרו באופן אוטומטי

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

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

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION
        --enable-autoprovisioning \
        --enable-autoprovisioning-blue-green-upgrade
    
  • כדי להשתמש בשדרוגים כחולים-ירוקים ולהגדיר הגדרות ברירת מחדל משלכם למאגרי צמתים חדשים שנוצרו באופן אוטומטי, מריצים את הפקודה הבאה:

    gcloud container clusters update CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --enable-autoprovisioning-blue-green-upgrade \
        --autoprovisioning-node-pool-soak-duration=NODE_POOL_SOAK_DURATION \
        --autoprovisioning-standard-rollout-policy=batch-node-count=BATCH_NODE_COUNT,batch-soak-duration=BATCH_SOAK_DURATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NODE_POOL_SOAK_DURATION: משך הזמן, בשניות, ש-GKE ממתין אחרי ניקוז כל קבוצות הצמתים במאגר הכחול לפני מחיקת המאגר הכחול. ערך ברירת המחדל הוא 3600.
    • BATCH_NODE_COUNT: מספר הצמתים שצריך לרוקן באצווה במהלך שלב הריקון של המאגר הכחול. ערך ברירת המחדל הוא 1. אם מציינים את הערך 0, המערכת של GKE מדלגת על שלב הניקוז של המאגר הכחול.
    • ‫BATCH_SOAK_DURATION: משך הזמן, בשניות, ש-GKE ממתין עד להתחלת פעולת ניקוז באצווה אחרי שפעולת הניקוז הקודמת מסתיימת. ערך ברירת המחדל הוא 0.

הגדרת דיסקים לאתחול של צמתים בהתאמה אישית

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

ComputeClass

  1. משתמשים בשדות bootDiskType ו-bootDiskSize בשדה spec.priorities.storage ב-ComputeClass:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - machineType: n4-standard-16
        storage:
          bootDiskType: BOOT_DISK_TYPE
          bootDiskSize: BOOT_DISK_SIZE
      - machineType: n4d-standard-16
        storage:
          bootDiskType: BOOT_DISK_TYPE
          bootDiskSize: BOOT_DISK_SIZE
      whenUnsatisfiable: ScaleUpAnyway
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫BOOT_DISK_TYPE: סוג הדיסק שישמש כדיסק האתחול של הצומת. הערך שאתם מציינים צריך להיות נתמך על ידי סוג המכונה של Compute Engine שמשמש את GKE לכלל העדיפות הזה. הערך חייב להיות אחד מהבאים:
      • ‫pd-balanced: דיסק אחסון מתמיד מאוזן.
      • ‫pd-standard: דיסק מתמיד סטנדרטי.
      • ‫pd-ssd: דיסק מתמיד שמבוסס על ביצועים (SSD).
      • ‫hyperdisk-balanced: Google Cloud Hyperdisk Balanced.
    • ‫BOOT_DISK_SIZE: הגודל של דיסק האתחול של הצומת, ב-GiB. הערך המינימלי הוא 10.
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

gcloud

  1. בקובץ התצורה, מציינים את השדות diskSizeGb ו-diskType:

    diskSizeGb: BOOT_DISK_SIZE
    diskType: BOOT_DISK_TYPE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫BOOT_DISK_TYPE: סוג הדיסק שישמש כדיסק האתחול של הצומת. הערך שאתם מציינים צריך להיות נתמך על ידי סוג המכונה של Compute Engine שמשמש את GKE לכלל העדיפות הזה. הערך חייב להיות אחד מהבאים:
      • ‫pd-balanced: דיסק אחסון מתמיד מאוזן.
      • ‫pd-standard: דיסק מתמיד סטנדרטי.
      • ‫pd-ssd: דיסק מתמיד שמבוסס על ביצועים (SSD).
      • ‫hyperdisk-balanced: Google Cloud Hyperdisk Balanced.
    • ‫BOOT_DISK_SIZE: הגודל של דיסק האתחול של הצומת, ב-GiB. הערך המינימלי הוא 10.

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

  2. כדי לספק את קובץ התצורה ל-GKE, מציינים את הדגל --autoprovisioning-config-file ואת הדגל --enable-autoprovisioning לאשכול חדש או קיים:

    gcloud container clusters create CLUSTER_NAME \
        --location=CONTROL_PLANE_LOCATION \
        --enable-autoprovisioning \
        --autoprovisioning-config-file=PATH_TO_CONFIGURATION_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_NAME: שם האשכול.
    • ‫PATH_TO_CONFIGURATION_FILE: הנתיב לקובץ התצורה.

‫GKE שומר חלק מדיסק האתחול של הצומת לפונקציונליות של המערכת ולאחסון זמני. מידע נוסף זמין במאמר אחסון זמני שמגובה בדיסק אתחול של צומת.

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

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

בחירת סדרת מכונות או סוג מכונה

כדי לבחור סדרת מכונות או סוג מכונה נתמכים של Compute Engine, בוחרים אחת מהאפשרויות הבאות:

ComputeClass

  1. במניפסט של ComputeClass, מציינים אחד מהשדות הבאים בשדה spec.priorities. אפשר לציין את שני השדות האלה באותו מניפסט של ComputeClass, אבל לא באותו כלל עדיפות.

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

      apiVersion: cloud.google.com/v1
      kind: ComputeClass
      metadata:
        name: COMPUTE_CLASS
      spec:
        priorities:
        - machineFamily: MACHINE_SERIES
        whenUnsatisfiable: ScaleUpAnyway
        nodePoolAutoCreation:
          enabled: true
      

      מחליפים את MACHINE_SERIES בסדרת מכונות של Compute Engine, כמו n4.

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

      apiVersion: cloud.google.com/v1
      kind: ComputeClass
      metadata:
        name: COMPUTE_CLASS
      spec:
        priorities:
        - machineType: MACHINE_TYPE
        whenUnsatisfiable: ScaleUpAnyway
        nodePoolAutoCreation:
          enabled: true
      

      מחליפים את MACHINE_TYPE בסוג מכונה של Compute Engine, כמו c4-standard-96. ב-GKE מגרסה 1.33.2-gke.1111000 ואילך, אפשר גם לציין בשדה הזה סוגי מכונות בהתאמה אישית.

    אי אפשר לציין את השדה machineFamily ואת השדה machineType באותו כלל עדיפות.

  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

  3. בחירת ComputeClass בעומס עבודה.

מפרט Pod

  1. במניפסט של Pod, בוחרים אחת מתוויות הצומת הבאות:

    • כדי לבחור סדרת מכונות, משתמשים בתווית הצומת cloud.google.com/machine-family:

      apiVersion: v1
      kind: Pod
      metadata:
        name: machine-series-pod
      spec:
        nodeSelector:
          cloud.google.com/machine-family: MACHINE_SERIES
        containers:
        - name: hello-app
          image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      

      מחליפים את MACHINE_SERIES בסדרת מכונות של Compute Engine, כמו n4.

    • כדי לבחור מכונה עם קונפיגורציה מוגדרת (predefined), משתמשים בתוויות הצומת cloud.google.com/machine-family ו-node.kubernetes.io/instance-type:

      apiVersion: v1
      kind: Pod
      metadata:
        name: machine-series-pod
      spec:
        nodeSelector:
          cloud.google.com/machine-family: MACHINE_SERIES
          node.kubernetes.io/instance-type: MACHINE_TYPE
        containers:
        - name: hello-app
          image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      

      מחליפים את MACHINE_TYPE בסוג מכונה של Compute Engine בסדרת המכונות שצוינה. לדוגמה, אם מציינים את הערך n4 בשדה MACHINE_SERIES, אפשר לציין את הערך n4-standard-80 בשדה MACHINE_TYPE.

      בגרסה 1.33.2-gke.1111000 של GKE, אפשר גם לציין בשדה הזה סוגי מכונות בהתאמה אישית.

  2. יוצרים את ה-Pod:

    kubectl apply -f PATH_TO_POD_MANIFEST
    

    מחליפים את PATH_TO_POD_MANIFEST בנתיב למניפסט של ה-Pod.

בחירת מעבדי GPU

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

ComputeClass

  1. במניפסט של ComputeClass, מציינים את השדה spec.priorities.gpu:

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - gpu:
          type: GPU_TYPE
          count: GPU_COUNT
          driverVersion: DRIVER_VERSION
      whenUnsatisfiable: DoNotScaleUp
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫GPU_TYPE: סוג ה-GPU שרוצים לצרף, למשל nvidia-l4.
    • ‫GPU_COUNT: מספר המעבדים הגרפיים שצריך לצרף לכל צומת. הערך חייב להיות לפחות 1.
    • ‫DRIVER_VERSION: גרסת מנהל ההתקן של ה-GPU שרוצים להתקין. הערך הזה חייב להיות default או latest. השדה הזה דורש את GKE בגרסה 1.31.1-gke.1858000 ואילך.
  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

  3. בוחרים את ComputeClass בעומס עבודה של GPU, כמו בדוגמה הבאה:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-gpu-pod
    spec:
      nodeSelector:
        cloud.google.com/compute-class: nvidia-l4-class
      containers:
      - name: my-gpu-container
        image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
        command: ["/bin/bash", "-c", "--"]
        args: ["while true; do sleep 600; done;"]
        resources:
          limits:
          nvidia.com/gpu: 1
    

מפרט Pod

כדי לבחור יחידות GPU במפרטים של Pod, צריך להגדיר הקצאת צמתים אוטומטית (NAP) ברמת האשכול ולהגדיר מגבלות משאבים לסוג ה-GPU הזה. כדי להגדיר מגבלות משאבים ל-GPU ולבחור יחידות GPU ב-Pod, מבצעים את השלבים הבאים:

  1. מגדירים מגבלות משאבים ברמת האשכול למעבדי ה-GPU שבהם רוצים להשתמש, כמו שמתואר בקטע הגדרת מגבלות משאבים ליצירה אוטומטית של מאגרי צמתים.
  2. בוחרים יחידות GPU באמצעות תוויות של צמתים במפרט של ה-Pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-gpu-pod
    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: GPU_TYPE
        cloud.google.com/gke-accelerator-count: GPU_COUNT
        cloud.google.com/gke-gpu-driver-version: DRIVER_VERSION
      containers:
      - name: my-gpu-container
        image: nvidia/cuda:11.0.3-runtime-ubuntu20.04
        command: ["/bin/bash", "-c", "--"]
        args: ["while true; do sleep 600; done;"]
        resources:
          limits:
          nvidia.com/gpu: GPU_QUANTITY
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫GPU_TYPE: סוג ה-GPU שרוצים לצרף, למשל nvidia-l4.
    • ‫GPU_COUNT: מספר המעבדים הגרפיים שצריך לצרף לכל צומת. הערך חייב להיות לפחות 1.
    • ‫DRIVER_VERSION: גרסת מנהל ההתקן של ה-GPU שרוצים להתקין. הערך הזה חייב להיות default או latest. ב-GKE מגרסה 1.32.2-gke.1297000 ואילך, GKE מתקין באופן אוטומטי את גרסת הדרייבר default. כדי להשתמש בתווית הצומת הזו, צריך את GKE בגרסה 1.29.2-gke.1108000 ואילך. מידע נוסף זמין במאמר התקנת מנהלי התקנים באמצעות הקצאת צמתים אוטומטית עם יחידות GPU.
    • ‫GPU_QUANTITY: מספר יחידות ה-GPU שצריך לצרף ל-Pod. הערך הזה צריך להיות קטן מהערך של GPU_COUNT או שווה לו.

בחירת מעבדי TPU

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

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

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

בוחרים באחת מהאפשרויות הבאות:

ComputeClass

  1. במניפסט של ComputeClass, משתמשים בשדה spec.priorities.maxRunDurationSeconds. השדה הזה זמין ב-GKE מגרסה 1.32.1-gke.1159000 ואילך.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      priorities:
      - machine-family: n4
        maxRunDurationSeconds: MAX_RUN_DURATION
      whenUnsatisfiable: DoNotScaleUp
      nodePoolAutoCreation:
        enabled: true
    

    מחליפים את MAX_RUN_DURATION בזמן, בשניות, שבו צמתים שנוצרו באופן אוטומטי יכולים לפעול לפני ש-GKE מסיים את הצמתים.

  2. מחילים את המניפסט של ComputeClass על האשכול:

    kubectl apply -f PATH_TO_COMPUTECLASS_MANIFEST
    

    מחליפים את PATH_TO_COMPUTECLASS_MANIFEST בנתיב לקובץ המניפסט של ComputeClass.

  3. בחירת ComputeClass בעומס עבודה.

מפרט Pod

  1. במניפסט של ה-Pod, משתמשים בבורר צמתים לתווית הצומת cloud.google.com/gke-max-run-duration-seconds. התווית הזו זמינה בגרסה 1.31.2-gke.1518000 ואילך של GKE.

    apiVersion: v1
    kind: Pod
    metadata:
      name: machine-series-pod
    spec:
      nodeSelector:
        cloud.google.com/machine-family: n4
        cloud.google.com/gke-max-run-duration-seconds: MAX_RUN_DURATION
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    

    מחליפים את MAX_RUN_DURATION בזמן, בשניות, שבו צמתים שנוצרו באופן אוטומטי יכולים לפעול לפני ש-GKE מסיים את הצמתים.

  2. יוצרים את ה-Pod:

    kubectl apply -f PATH_TO_POD_MANIFEST
    

    מחליפים את PATH_TO_POD_MANIFEST בנתיב למניפסט של ה-Pod.

ציון פלטפורמת CPU מינימלית

הקצאת צמתים אוטומטית תומכת ביצירת מאגרי צמתים עם פלטפורמת CPU מינימלית. אפשר לציין את פלטפורמת ה-CPU המינימלית ברמת עומס העבודה (מומלץ) או ברמת האשכול.

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

בקטעים הבאים מוסבר איך להשבית את היצירה האוטומטית של מאגרי צמתים ספציפיים או של כל האשכול. אפשר גם להשבית את היצירה האוטומטית של מאגרי צמתים ב-ComputeClass על ידי ציון הערך false בשדה nodePoolAutoCreation.enabled של ComputeClass. עם זאת, לא מומלץ להשבית את היצירה האוטומטית של ComputeClasses, כי היצירה האוטומטית היא יתרון עיקרי של ComputeClasses שמאפשר להשתמש בתכונות כמו העברה פעילה ועדיפויות חלופיות.

השבתת היצירה האוטומטית של מאגרי צמתים ספציפיים

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

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

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

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --no-enable-autoprovisioning

השבתת הקצאת צמתים אוטומטית (NAP) באשכול

כדי להשבית את היצירה האוטומטית של מאגרי צמתים בכל האשכול, משביתים את הגדרת האשכול להקצאת צמתים אוטומטית. הפעולה הזו גורמת לתוצאות הבאות:

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

    • משתמשים ב-GKE בגרסה 1.33.3-gke.1136000 ואילך.

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

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

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

המסוף

  1. נכנסים לדף Kubernetes clusters במסוף Google Cloud :

    כניסה לאשכולות של Kubernetes

  2. לוחצים על שם האשכול שרוצים לשנות. הדף Cluster details נפתח.

  3. לוחצים על הכרטיסייה פרטים.

  4. בקטע Automation, בשורה הקצאת צמתים אוטומטית (NAP) לוחצים על Edit. מופיע החלון Edit node auto-provisioning.

  5. מבטלים את הסימון בתיבה Enable node auto-provisioning.

  6. לוחצים על שמירת השינויים.

gcloud

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --no-enable-autoprovisioning

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