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

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

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

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

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

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

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

מערכת 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

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

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

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