בדף הזה מוסבר איך פועל התיקון האוטומטי של צמתים ואיך משתמשים בתכונה הזו באשכולות 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, פועלים לפי ההוראות הבאות כדי להפעיל אותה:
המסוף
נכנסים לדף 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 (מאגרי צמתים), לוחצים על השם של מאגר הצמתים שרוצים לבדוק.
בקטע ניהול, בשדה תיקון אוטומטי, מוודאים שהתיקון האוטומטי מופעל.
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 עריכה.
בקטע ניהול, מבטלים את הסימון בתיבה הפעלת תיקון אוטומטי.
לוחצים על 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 דקות.