בדף הזה מוסבר איך פועל תיקון אוטומטי של צמתים ואיך משתמשים בתכונה הזו באשכולות 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, ראו תיקון אוטומטי של צומת פרוסת TPU.
הפעלת תיקון אוטומטי למאגר צמתים רגיל קיים
הפעלת תיקון אוטומטי של צמתים מתבצעת לכל מאגר צמתים.
אם התיקון האוטומטי מושבת במאגר צמתים קיים באשכול Standard, תוכלו להפעיל אותו לפי ההוראות הבאות:
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על הכרטיסייה Nodes (צמתים).
בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.
בדף פרטי מאגר הצמתים, לוחצים על edit עריכה.
בקטע ניהול, מסמנים את התיבה הפעלת תיקון אוטומטי.
לוחצים על 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 המסוף.
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
בדף Google Kubernetes Engine, לוחצים על שם האשכול של מאגר הצמתים שרוצים לבדוק.
לוחצים על הכרטיסייה Nodes (צמתים).
בקטע Node Pools, לוחצים על השם של מאגר הצמתים שרוצים לבדוק.
בקטע Management, בשדה Auto-repair, מוודאים שהתיקון האוטומטי מופעל.
gcloud
מתארים את מאגר הצמתים:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
אם התיקון האוטומטי של הצמתים מופעל, הפלט של הפקודה כולל את השורות הבאות:
management:
...
autoRepair: true
השבתת התיקון האוטומטי של הצומת
אפשר להשבית את התיקון האוטומטי של צמתים במאגר צמתים קיים באשכול Standard באמצעות ה-CLI של gcloud או מסוף Google Cloud .
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
ברשימת האשכולות, לוחצים על שם האשכול שרוצים לשנות.
לוחצים על הכרטיסייה Nodes (צמתים).
בקטע Node Pools (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לשנות.
בדף פרטי מאגר הצמתים, לוחצים על edit עריכה.
בקטע Management, מבטלים את הסימון בתיבה Enable auto-repair.
לוחצים על 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 יוצר רשומת יומן לאירועי תיקון אוטומטיים. כדי לבדוק את היומנים, מריצים את הפקודות הבאות:
מציינים את הפעולות:
gcloud container operations list --location=CONTROL_PLANE_LOCATIONמחליפים את
CONTROL_PLANE_LOCATIONבמיקום של מישור הבקרה של האשכול ב-Compute Engine. מציינים אזור לאשכולות אזוריים או אזור לאשכולות אזוריים.כדי לגלות למה הופעלה פעולת התיקון האוטומטי של הצומת, מריצים את הפקודה הבאה:
gcloud container operations describe OPERATION_NAME --location=CONTROL_PLANE_LOCATIONמחליפים את
OPERATION_NAMEבשם של פעולה שמופיעה בפלט מהפקודה הקודמת.
בפלט של הפקודה, בודקים את operationReason כדי לראות מה הסיבה להפעלת פעולת התיקון. לדוגמה, AUTO_REPAIR_LONG_UNHEALTHY
פירושו שהתיקון האוטומטי של הצומת הופעל כי הצומת לא היה תקין במשך
10 דקות.