עדכון תוויות וכתמים של צומתי Kubernetes במאגרי צמתים

במאמר הזה מוסבר איך לעדכן את התוויות של צומת Kubernetes ואת ה-taints של הצומת במאגר צמתים קיים באשכול רגיל של Google Kubernetes Engine‏ (GKE) באמצעות GKE API. תוויות של צמתים ב-Kubernetes שונות מתוויות של אשכולות וצמתים ב-GKE.

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

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

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

תחביר התוויות

תוויות Kubernetes צריכות לעמוד בכל הדרישות הבאות:

  • המפתחות והערכים של התוויות צריכים לעמוד בדרישות של התחביר וערכת התווים.
  • האורך של הערך שמציינים בסימן --node-labels gcloud CLI לא יכול לחרוג מ-1,024 תווים.

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

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

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

עדכון תוויות הצמתים

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

gcloud container node-pools update NODEPOOL_NAME \
    --node-labels=[NODE_LABEL,...] \
    --cluster=CLUSTER_NAME
    --location=CONTROL_PLANE_LOCATION
    [GCLOUD_WIDE_FLAG ]

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

  • NODEPOOL_NAME: השם של מאגר הצמתים שרוצים לעדכן.
  • [NODE_LABEL,...]: תוויות הצומת החדשות (לדוגמה, label1=value1,label2=value2).
  • CLUSTER_NAME: שם האשכול.
  • CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.

עדכון של כתמי הצומת

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

gcloud container node-pools update NODEPOOL_NAME \
    --node-taints=[NODE_TAINT,...] \
    --cluster=CLUSTER_NAME
    --location=CONTROL_PLANE_LOCATION
    [GCLOUD_WIDE_FLAG ]

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

  • NODEPOOL_NAME: השם של מאגר הצמתים שרוצים לעדכן.
  • [NODE_TAINT,...]: כתמי הצבע החדשים של הצומת (לדוגמה, key1=val1:NoSchedule,key2=val2:PreferNoSchedule).
  • CLUSTER_NAME: שם האשכול.
  • CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.

עדכון של תיוגים לארכיטקטורה

בדומה ל-taints אחרים של מערכת שמנוהלים על ידי GKE,‏ taints של ארכיטקטורה כמו kubernetes.io/arch=arm64:NoSchedule בצמתי Arm מנוהלים באופן שונה מ-taints מותאמים אישית של צמתים, ואי אפשר להסיר אותם באמצעות ההוראות שמתוארות למעלה. עם זאת, אפשר לשנות את ההגדרות של ה-taints של הארכיטקטורה. מידע נוסף מופיע במאמר הגדרת ברירת המחדל של הארכיטקטורה של Arm.