תיקון אוטומטי של צמתים

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

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

הגדרות ל-Autopilot ול-Standard

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

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

תיקון קריטריונים

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

  • צומת מדווח על סטטוס NotReady בבדיקות רצופות מעל סף הזמן שצוין (כ-10 דקות).
  • צומת לא מדווח על סטטוס כלשהו מעבר לסף הזמן הנתון (כ-10 דקות).
  • נפח האחסון בדיסק האתחול של הצומת התמלא למשך תקופה ממושכת (כ-30 דקות).
  • צומת באשכול Autopilot מבודד למשך זמן ארוך יותר מסף הזמן שצוין (כ-10 דקות).

אפשר לבדוק באופן ידני את אותות תקינות הצומת בכל שלב באמצעות הפקודה kubectl get nodes.

תהליך תיקון הצומת

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

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

אם משביתים את התיקון האוטומטי של הצומת בכל שלב במהלך תהליך התיקון, התיקונים לא מבוטלים וממשיכים להתבצע בכל צומת שנמצא בתיקון.

תיקון אוטומטי של צמתים בפרוסות של צמתים של TPU

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

הפעלת תיקון אוטומטי למאגר צמתים רגיל קיים

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

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

המסוף

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

    מעבר אל Google Kubernetes Engine

  2. ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.

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

  4. בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.

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

  6. בקטע ניהול, מסמנים את התיבה הפעלת תיקון אוטומטי.

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

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --enable-autorepair

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

  • POOL_NAME: השם של מאגר הצמתים.
  • CLUSTER_NAME: השם של אשכול Standard.
  • CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.

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

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

המסוף

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

    מעבר אל Google Kubernetes Engine

  2. בדף Google Kubernetes Engine, לוחצים על שם האשכול של מאגר הצמתים שרוצים לבדוק.

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

  4. בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לבדוק.

  5. בקטע ניהול, בשדה תיקון אוטומטי, מוודאים שהתיקון האוטומטי מופעל.

gcloud

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

gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME

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

management:
  ...
  autoRepair: true

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

אפשר להשבית את התיקון האוטומטי של צמתים במאגר צמתים קיים באשכול Standard באמצעות ה-CLI של gcloud או Google Cloud המסוף.

המסוף

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

    מעבר אל Google Kubernetes Engine

  2. ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.

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

  4. בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.

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

  6. בקטע ניהול, מבטלים את הסימון בתיבה הפעלת תיקון אוטומטי.

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

gcloud

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --no-enable-autorepair

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

  • POOL_NAME: השם של מאגר הצמתים.
  • CLUSTER_NAME: השם של אשכול Standard.
  • CONTROL_PLANE_LOCATION: המיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.

קבלת מידע על אירועי תיקון אוטומטיים מהזמן האחרון

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

  1. מציינים את הפעולות:

    gcloud container operations list --location=CONTROL_PLANE_LOCATION
    

    מחליפים את CONTROL_PLANE_LOCATION במיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור זמין לאשכולות אזוריים.

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

    gcloud container operations describe OPERATION_NAME --location=CONTROL_PLANE_LOCATION
    

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

בפלט מהפקודה, בודקים את operationReason כדי לראות למה הופעלה פעולת התיקון. לדוגמה, AUTO_REPAIR_LONG_UNHEALTHY פירושו שהתיקון האוטומטי של הצומת הופעל כי הצומת לא היה תקין במשך 10 דקות.

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