עדכון תוויות וכתמים של צומתי 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 flag לא יכול לחרוג מ-1,024 תווים.

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

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

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-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. מציינים אזור לאשכולות אזוריים או אזור לאשכולות אזוריים.

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

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