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

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

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

מגבלות

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

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

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

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

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

דרישות

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

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

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

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

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

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

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

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

  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. שומרים את פריסת הדוגמה הבאה, שבוחרת 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 יצר מאגר צמתים חדש בשביל ה-Pod, מקבלים רשימה של מאגרי הצמתים באשכול:

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

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

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

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

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

לפני שמפעילים הקצאת צמתים אוטומטית (NAP), צריך לתכנן את הגודל של טווח כתובות ה-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. מסמנים את תיבת הסימון הפעלת הקצאת צמתים אוטומטית (NAP). מוצג קטע מגבלות.

  5. מציינים מגבלות למעבד ולזיכרון.

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

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: שם האשכול שרוצים להפעיל בו הקצאת צמתים אוטומטית (NAP).
  • CONTROL_PLANE_LOCATION: האזור או האזור של מישור הבקרה של האשכול, למשל us-central1 או us-central1-a.
  • MINIMUM_CPU: מספר הליבות המינימלי באשכול.
  • MINIMUM_MEMORY: נפח הזיכרון המינימלי ב-GiB באשכול.
  • MAXIMUM_CPU: המספר המקסימלי של ליבות באשכול. המגבלה הזו חלה על סכום ליבות ה-CPU בכל הצמתים החדשים והקיימים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.
  • MAXIMUM_MEMORY: קיבולת הזיכרון המקסימלית באשכול, ב-GiB. המגבלה הזו חלה על סכום קיבולת הזיכרון בכל מאגרי הצמתים החדשים והקיימים באשכול, כולל מאגרי צמתים שנוצרו באופן ידני.

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

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

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

  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: הגדרת מגבלות משאבים למעבד, לקיבולת הזיכרון ולמעבדי NVIDIA T4 GPU באשכול. המגבלות האלה חלות על סכום קיבולת המשאבים באשכול, כולל במאגרי צמתים שנוצרו באופן ידני.
    • 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)

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

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

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

המסוף

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

    מעבר אל Kubernetes clusters

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

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

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

  5. מסמנים את תיבת הסימון הפעלת הקצאת צמתים אוטומטית (NAP).

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

  7. כדי להגדיר מגבלות למשאב אחר, כמו GPU או TPU, מבצעים את הפעולות הבאות:

    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: מספר המינימום של מעבדים גרפיים מהסוג שצוין שיכולים להיות באשכול.
    • MAXIMUM_GPU_COUNT: המספר המקסימלי של מעבדים גרפיים מהסוג שצוין שיכולים להיות באשכול.
  • מציינים את מגבלות המשאבים של 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 slice עם כמה מארחים, יכול להיות שה-TPU slice לא יוקטן.
    • MAXIMUM_TPU_COUNT: המספר המקסימלי של שבבי TPU מהסוג שצוין שיכולים להיות באשכול. במקרים של חלקי TPU עם כמה מארחים, צריך לציין ערך שגדול ממספר הצ'יפים בכל חלק, כדי ש-GKE יוכל לשנות את גודל החלק באופן אטומי. מספר השבבים בפרוסה הוא תוצאה של טופולוגיית ה-TPU. לדוגמה, אם הטופולוגיה היא 2x2x2, מספר השבבים בפרוסת ה-TPU הוא 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 מרובה מארחים, יכול להיות שהפלח לא יוקטן.
      • 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 ו-Pods כדי לקבוע את סוגי הצמתים שיכולים להריץ בצורה אופטימלית את ה-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 בערך של node image, שיכול להיות אחד מהערכים הבאים:

    • 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) ב-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: הנתיב לקובץ התצורה.

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

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

  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. השדות האלה זמינים בגרסה 1.34.0-gke.2201000 של GKE ואילך.

    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. כדי לשנות את הגדרות שדרוג המתח, צריך להגדיר הקצאת צמתים אוטומטית (NAP) ברמת האשכול.

  • כדי לציין הגדרות של שדרוג מתח בשורת הפקודה, משתמשים בדגלים --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 משתמש בכל ההגדרות שהגדרתם בעבר לאסטרטגיית השדרוג הזו.

שימוש בשדרוגים מסוג blue-green למאגרי צמתים חדשים שנוצרו באופן אוטומטי

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

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

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

    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 מצרף לכל מכונת VM של צומת במאגר צמתים שנוצר באופן אוטומטי, בוחרים באחת מהאפשרויות הבאות:

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: דיסק מתמיד (Persistent Disk) לביצועים (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: דיסק מתמיד (Persistent Disk) לביצועים (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.

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

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

    kubectl apply -f PATH_TO_POD_MANIFEST
    

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

בחירת יחידות GPU

כדי לבקש יחידות 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: מספר יחידות ה-GPU לצירוף לכל צומת. הערך חייב להיות לפחות 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, צריך להגדיר הקצאה אוטומטית של צמתים ברמת האשכול ולהגדיר מגבלות משאבים לסוג ה-GPU הזה. כדי להגדיר את מגבלות המשאבים של ה-GPU ולבחור את ה-GPU ב-Pods, פועלים לפי השלבים הבאים:

  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: מספר יחידות ה-GPU לצירוף לכל צומת. הערך חייב להיות לפחות 1.
    • DRIVER_VERSION: גרסת מנהל ההתקן של GPU להתקנה. הערך חייב להיות default או latest. ב-GKE בגרסה 1.32.2-gke.1297000 ואילך,‏ GKE מתקין באופן אוטומטי את גרסת הדרייבר default. נדרשת גרסה ‎1.29.2-gke.1108000 ואילך של GKE כדי להשתמש בתווית הצומת הזו. מידע נוסף זמין במאמר בנושא התקנת דרייברים באמצעות הקצאת משאבים אוטומטית של צמתים עם 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.

צריך לציין פלטפורמת מעבד מינימלית

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

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

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

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

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

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

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

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

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

כדי להשבית את היצירה האוטומטית של מאגר צמתים בכל האשכול, צריך להשבית את ההגדרה של האשכול Node Auto Provisioning. הפעולה הזו גורמת לשינויים הבאים:

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

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

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

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

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

המסוף

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

    מעבר אל Kubernetes clusters

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

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

  4. בקטע אוטומציה, בשורה הקצאת משאבים אוטומטית של צמתים, לוחצים על עריכה. מופיעה החלונית Edit node auto-provisioning.

  5. מבטלים את הסימון בתיבה Enable node auto-provisioning (הפעלה של הקצאת הרשאות אוטומטית לצומת).

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

gcloud

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

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