פתרון בעיות במנהל הבקרה של Kubernetes

בדף הזה מוסבר איך לפתור בעיות ב-Kubernetes controller manager ‏ (kube-controller-manager) ב-Google Distributed Cloud.

הבחירה של מנהיג נכשלה

יכול להיות שהשגיאה הזו תופיע באשכול אזורי או במישור בקרה משוכפל אם kube-controller-manager (KCM) מופעל מחדש באופן לא צפוי. יכול להיות שההפעלה מחדש תכלול יציאה מהאפליקציה או הפעלה מחדש על ידי kubelet. יכול להיות שיופיעו בהם הודעות leaderelection lost.

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

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

אפשר לאחזר את הסטטוס של בחירת המנהיג על ידי קבלת משאבי Lease של קבוצת coordination.k8s.io:

  1. כדי לראות את כל ההשכרות, מריצים את הפקודה kubectl הבאה:

    kubectl -n kube-system get lease
    
  2. כדי לבדוק את הסטטוס של ליס מסוים, כמו lease/kube-controller-manager, משתמשים בפקודה kubectl describe הבאה:

    kubectl -n kube-system describe lease/kube-controller-manager
    

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

    Events:
      Type    Reason          Age    From                     Message
      ----    ------          ----   ----                     -------
      Normal  LeaderElection  26m    kube-controller-manager  control-plane_056a86ec-84c5-48b8-b58d-86f3fde2ecdd became leader
      Normal  LeaderElection  5m20s  kube-controller-manager  control-plane2_b0475d49-7010-4f03-8a9d-34f82ed60cd4 became leader
    

    אפשר גם לעקוב אחרי התהליך של איבוד מנהיגות וקבלת מנהיגות באמצעות המדד kubernetes.io/anthos/leader_election_master_status שמקובץ לפי name.

תהליך בחירת המנהיג מתרחש רק אם המנהיג הנוכחי נכשל. כדי לוודא שהפעולה נכשלה, אפשר לבדוק את המדדים kubernetes.io/anthos/container/uptime ו-kubernetes.io/anthos/container/restart_count שסוננו לפי container_name של kube-controller-manager.

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

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

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

לקבלת עזרה נוספת, אפשר לפנות אל Cloud Customer Care.

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