ניהול מאגרי צמתים

כשיוצרים אשכול Kubernetes ב-Google Distributed Cloud (GDC)‎ עם air gap, מספר הצמתים וסוג הצמתים שמציינים יוצרים את מאגר הצמתים הראשון של האשכול. אם דרישות המחשוב של אשכול קיים משתנות, אתם יכולים לבצע את המשימות הבאות במאגר הצמתים:

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

  • הצגת מאגר צמתים: הצגת המאפיינים והמצב של מאגרי הצמתים הקיימים.

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

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

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

המסמך הזה מיועד למפתחי אפליקציות בקבוצת מפעילי האפליקציות, ולאדמינים ממחלקת IT בקבוצת האדמינים של הפלטפורמה, שאחראים על ניהול אשכולות Kubernetes בארגון. מידע נוסף זמין במאמר קהלי היעד של GDC עם air gap.

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

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

בקשת תפקידים ב-IAM

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

תפקידים משותפים באשכול

כדי ליצור, למחוק, לערוך או להציג את מאגרי הצמתים של אשכול משותף, צריך לפנות למנהל החשבון הארגוני ב-IAM ולבקש את התפקיד אדמין של אשכול משתמשים (user-cluster-admin). התפקיד הזה לא קשור למרחב שמות.

תפקידים רגילים באשכול

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

  • אדמין של אשכול רגיל (standard-cluster-admin): יצירה, מחיקה, עריכה או הצגה של מאגרי הצמתים של אשכול רגיל.

  • מפתח אשכולות (cluster-developer): יצירה, מחיקה, עריכה או הצגה של אשכול רגיל. התפקיד הזה נדרש כדי לראות את הפרטים של מאגר הצמתים של האשכול במסוף GDC.

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

הכנת הסביבה

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

  • מאתרים את שם האשכול של Kubernetes, או שואלים חבר בקבוצת האדמינים של הפלטפורמה מה שם האשכול.

  • בהוראות הבאות, החליפו את KUBERNETES_CLUSTER_NAME בשם של אשכול Kubernetes.

  • נכנסים ויוצרים את קובץ ה-kubeconfig של שרת ה-API לניהול של אשכול Kubernetes.

  • בהוראות הבאות, מחליפים את MANAGEMENT_API_SERVER בנתיב kubeconfig של שרת ה-API לניהול.

הוספת מאגר צמתים

כדי להוסיף מאגר צמתים לאשכול Kubernetes קיים:

המסוף

  1. בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.

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

  2. בתפריט הניווט, לוחצים על Kubernetes Engine > Clusters.

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

  4. בוחרים באפשרות מאגרי צמתים > Add node pool.

  5. נותנים שם למאגר הצמתים. אי אפשר לשנות את השם אחרי שיוצרים את מאגר הצמתים.

  6. מציינים את מספר הצמתים העובדים שרוצים ליצור במאגר הצמתים.

  7. בוחרים את סוג המכונה שהכי מתאים לדרישות של עומס העבודה. סוגי המכונות מוצגים בהגדרות הבאות:

    • סוג המכונה
    • vCPU
    • זיכרון
  8. לוחצים על Save.

API

  1. פותחים את המפרט של המשאב בהתאמה אישית של Cluster באמצעות ה-CLI של kubectl, בעזרת העורך האינטראקטיבי:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

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

    • ‫KUBERNETES_CLUSTER_NAME: שם האשכול.
    • ‫KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. באשכולות משותפים, צריך להשתמש במרחב השמות platform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.
    • ‫MANAGEMENT_API_SERVER: הנתיב של kubeconfig בשרת ה-API האזורי שבו מתארח אשכול Kubernetes.
  2. מוסיפים רשומה חדשה בקטע nodePools:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
      acceleratorOptions:
        gpuPartitionScheme: GPU_PARTITION_SCHEME
    

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

    • ‫MACHINE_TYPE: סוג המכונה של צומתי העובדים במאגר הצמתים. במאמר סוגי המכונות הזמינים מפורטות האפשרויות שאפשר להגדיר.
    • ‫NODE_POOL_NAME: שם מאגר הצמתים.
    • ‫NUMBER_OF_WORKER_NODES: מספר הצמתים העובדים שצריך להקצות במאגר הצמתים.
    • ‫TAINTS: ה-taints שיוחלו על הצמתים של מאגר הצמתים הזה. השדה הזה אופציונלי.
    • ‫LABELS: התוויות שיוחלו על הצמתים במאגר הצמתים הזה. הוא מכיל רשימה של צמדי מפתח/ערך. השדה הזה אופציונלי.
    • ‫GPU_PARTITION_SCHEME: סכימת החלוקה למחיצות של ה-GPU, אם מריצים עומסי עבודה ב-GPU. לדוגמה, mixed-2. אם השדה הזה לא מוגדר, ה-GPU לא מחולק למחיצות. במאמר פרופילים נתמכים של MIG מפורטים הפרופילים הזמינים של Multi-Instance GPU ‏ (MIG).
  3. שומרים את הקובץ ויוצאים מהכלי לעריכת טקסט.

הצגת מאגרי צמתים

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

המסוף

  1. בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.

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

  2. בתפריט הניווט, לוחצים על Kubernetes Engine > Clusters.

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

  4. בוחרים באפשרות מאגרי צמתים.

מוצגת רשימה של מאגרי הצמתים שפועלים באשכול. בדף הזה אפשר לנהל את מאגרי הצמתים של האשכול.

API

  • הצגת מאגרי הצמתים של אשכול Kubernetes ספציפי:

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        -o json --kubeconfig MANAGEMENT_API_SERVER | \
        jq .status.workerNodePoolStatuses
    

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

    • ‫KUBERNETES_CLUSTER_NAME: שם האשכול.
    • ‫KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. באשכולות משותפים, צריך להשתמש במרחב השמות platform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.

    הפלט אמור להיראות כך:

    [
      {
        "conditions": [
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "NodepoolReady",
            "status": "True",
            "type": "Ready"
          },
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "ReconciliationCompleted",
            "status": "False",
            "type": "Reconciling"
          }
        ],
        "name": "worker-node-pool",
        "readyNodes": 3,
        "readyTimestamp": "2023-08-31T18:59:46Z",
        "reconcilingNodes": 0,
        "stalledNodes": 0,
        "unknownNodes": 0
      }
    ]
    

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

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

כדי לשנות את הגודל של מאגר צמתים באשכול קיים:

המסוף

  1. בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.

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

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

  3. בתפריט הניווט, לוחצים על Kubernetes Engine > Clusters.

  4. בוחרים את שם האשכול שמאגר הצמתים משויך אליו. הדף Cluster details ייפתח.

  5. לוחצים על הכרטיסייה מאגרי צמתים.

  6. לוחצים על סמל העריכה של מאגר הצמתים שרוצים לשנות את הגודל שלו. מופיעה ההודעה עריכת מאגר צמתים.

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

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

  9. חוזרים לכרטיסייה Node pools של האשכול ומוודאים שלמאגר הצמתים ששיניתם את הגודל שלו יש את הסטטוס Ready ומספר הצמתים הנכון. יכול להיות שיחלפו כמה דקות עד שמאגר הצמתים יותאם למפרט שלכם.

    מוודאים באמצעות המסוף שמאגר הצמתים מוכן.

API

  1. פותחים את המפרט של המשאב בהתאמה אישית Cluster באמצעות ה-CLI של kubectl, בעזרת העורך האינטראקטיבי:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

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

    • ‫KUBERNETES_CLUSTER_NAME: שם האשכול שמארח את מאגר הצמתים.
    • ‫KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. באשכולות משותפים, צריך להשתמש במרחב השמות platform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.
    • ‫MANAGEMENT_API_SERVER: הנתיב של kubeconfig בשרת ה-API האזורי שבו מתארח אשכול Kubernetes.
  2. מעדכנים את השדה nodeCount של מאגר הצמתים שרוצים לשנות את הגודל שלו:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: NUMBER_OF_WORKER_NODES
    

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

  3. שומרים את הקובץ ויוצאים מהכלי לעריכת טקסט.

  4. כדי לוודא שהשינוי של קנה המידה של הצומת הושלם, בודקים את ההגדרות של מאגר הצמתים:

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE -o json \
        --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatuses
    

    מוודאים שהמספר readyNodes משקף את כמות הצמתים שהגדרתם למאגר הצמתים. יכול להיות שיעברו כמה דקות עד שמאגר הצמתים יותאם למפרט שלכם.

מחיקת מאגר צמתים

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

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

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

המסוף

  1. בכלי לבחירת פרויקטים, בוחרים את הפרויקט או הארגון.

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

  2. בתפריט הניווט, לוחצים על Kubernetes Engine > Clusters.

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

  4. בוחרים באפשרות מאגרי צמתים.

  5. לוחצים על Delete לצד מאגר הצמתים שרוצים למחוק.

API

  1. פותחים את המפרט של המשאב בהתאמה אישית Cluster באמצעות ה-CLI של kubectl, בעזרת העורך האינטראקטיבי:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \
        -n KUBERNETES_CLUSTER_NAMESPACE \
        --kubeconfig MANAGEMENT_API_SERVER
    

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

    • ‫KUBERNETES_CLUSTER_NAME: שם האשכול.
    • ‫KUBERNETES_CLUSTER_NAMESPACE: מרחב השמות של האשכול. באשכולות משותפים, צריך להשתמש במרחב השמות platform. באשכולות רגילים, משתמשים במרחב השמות של הפרויקט של האשכול.
    • ‫MANAGEMENT_API_SERVER: הנתיב של kubeconfig בשרת ה-API האזורי שבו מתארח אשכול Kubernetes.
  2. מסירים את הרשומה של מאגר הצמתים מהקטע nodePools. לדוגמה, בקטע הקוד הבא צריך להסיר את השדות machineTypeName,‏ name ו-nodeCount:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

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

  3. שומרים את הקובץ ויוצאים מהכלי לעריכת טקסט.

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