שדרוגים של אשכולות במצב טייס אוטומטי

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

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

שדרוגים אוטומטיים של מישור הבקרה והצמתים

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

כדי לשדרג אשכול, GKE מעדכן את הגרסה שמישור הבקרה והצמתים מריצים. השדרוג של האשכולות מתבצע לגרסת משנה חדשה יותר (לדוגמה, מ-1.24 ל-1.25) או לגרסה חדשה יותר עם תיקון (לדוגמה, מ-1.24.2-gke.100 ל-1.24.5-gke.200). מידע נוסף זמין במאמר גרסאות ותמיכה ב-GKE.

כל אשכולות Autopilot רשומים בערוץ הפצה, כך ש-GKE משדרג אוטומטית את מישור הבקרה ואת הצמתים כדי להריץ את אותה גרסה של GKE.

ב-GKE, מישור הבקרה של אשכול משודרג לפני שדרוג הצמתים.

שדרוגים אוטומטיים של מישור הבקרה

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

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

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

‫GKE מבצע שדרוגים אוטומטיים של מישור הבקרה באמצעות השיטות הבאות, בהתאם לסוג השדרוג:

  • שדרוגים של גרסאות תיקונים: ב-GKE נעשה שימוש בשדרוג חד-שלבי, שמשדרג את רמת הבקרה ישירות לגרסה מאוחרת יותר עם תיקון.
  • שדרוגים של גרסאות משניות: כדי לשדרג לגרסה משנית 1.33 של GKE ואילך, GKE משתמש בתהליך דו-שלבי שבו אפשר לאמת את הגרסה המשנית החדשה למשך תקופת זמן טבילה, ולבצע שחזור אם צריך. מידע נוסף מופיע במאמר שדרוג משני של מישור הבקרה בשני שלבים עם אפשרות חזרה (rollback) בטוחה. לשדרוג לגרסאות קודמות, GKE משתמש בתהליך שדרוג חד-שלבי.

שדרוגים אוטומטיים של צמתים

אחרי ש-GKE משדרג את מישור הבקרה של אשכול Autopilot, הוא משדרג את הצמתים לאותה גרסה של GKE.

ב-Autopilot, ‏ GKE מקבץ צמתים עם מאפיינים דומים. ‫GKE משתמש בשדרוגים מדורגים לצמתים של Autopilot, ומשדרג עד 20 צמתים בקבוצה בו-זמנית. המספר המדויק של הצמתים שמשודרגים בו-זמנית משתנה כדי להבטיח זמינות גבוהה מתמשכת של צמתים ועומסי עבודה.

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

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

כש-GKE משדרג צומת, השלבים הבאים מתבצעים:

  1. ‫GKE יוצר צומת זמני חדש עם גרסת GKE החדשה וממתין עד שהצומת הזמני יירשם במישור הבקרה.
  2. מערכת GKE בוחרת צומת קיים, צומת היעד, לשדרוג.
  3. ‫GKE cordons את צומת היעד, ומונעת הצבה של Pods חדשים בצומת היעד.
  4. ‫GKE מרוקן את צומת היעד, ומסלק את ה-Pods הקיימים מצומת היעד.
  5. ‫GKE מתזמן מחדש את ה-Pods שמנוהלים על ידי בקר עומסי עבודה בצמתים זמינים אחרים. תאי Pod שלא ניתן לתזמן מחדש נשארים במצב PENDING עד ש-GKE יכול לתזמן אותם מחדש.

  6. ‫GKE מוחק את צומת היעד.

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

איך נבחרות גרסאות לשדרוג אוטומטי

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

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

‫GKE מפרסם גרסאות יעד חדשות לשדרוג אוטומטי בהערות למוצר. לפעמים, גרסה נבחרת לשדרוגים אוטומטיים של רמת הבקרה ולשדרוגים אוטומטיים של הצמתים בשבועות שונים. מערכת GKE משדרגת אוטומטית לגרסאות תיקון חדשות בגרסה משנית (כמו v1.21.x). כדי לקבל יעדי שדרוג אוטומטי עבור אשכול ספציפי, אפשר לעיין במאמר קבלת מידע על שדרוגים של אשכול.

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

גורמים שמשפיעים על התזמון של השקת הגרסה

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

השיטות האלה כוללות, בין היתר:

  • שינויים ב-GKE מושקים בהדרגה באזורים ובאזורי זמינות. Google Cloud
  • פלטפורמת GKE משיקה בהדרגה גרסאות תיקונים בערוצי הפצה. תיקון עובר זמן טבילה בערוץ ההפצה המהיר, ואז בערוץ ההפצה הרגיל, לפני שהוא מועלה בדרגה לערוץ ההפצה היציב אחרי שנצבר בו שימוש והוא ממשיך להפגין יציבות. אם נמצאה בעיה בגרסת תיקון במהלך תקופת ההמתנה בערוץ הפצה, הגרסה הזו לא תועבר לערוץ הבא והבעיה תתוקן בגרסת תיקון חדשה יותר.
  • ‫GKE משיק בהדרגה גרסאות משניות, בתהליך דומה לזה של גרסאות תיקון. גרסאות משניות עוברות תקופות הרצה ארוכות יותר כי הן כוללות שינויים משמעותיים יותר.
  • יכול להיות ש-GKE יעכב שדרוגים אוטומטיים כשגרסה חדשה משפיעה על קבוצה של אשכולות. לדוגמה, GKE מפסיק את השדרוגים האוטומטיים לאשכולות שזוהה בהם שימוש בתכונה או בממשק API שהוצאו משימוש ויוסרו בגרסה המשנית הבאה.
  • יכול להיות ש-GKE יעכב את ההשקה של גרסאות חדשות בזמני שיא (לדוגמה, בחגים מרכזיים) כדי להבטיח את המשכיות העסקית.

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

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

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

שדרוג ידני של אשכול Autopilot

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

לדוגמה, נניח שיש אשכול Autopilot שמופעלת בו גרסה GKE 1.35.6-gke.1250000 בערוץ ההפצה הרגיל. ההתנהגות הבאה רלוונטית:

  • אתם יכולים לשדרג לכל גרסת תיקון שזמינה בגרסה הרגילה.
  • אתם יכולים לשדרג לכל גרסת תיקון של 1.35 בערוץ המהיר. מידע נוסף על שדרוג מחוץ לערוץ זמין במאמר הפעלת גרסאות תיקון מערוץ חדש יותר.
  • אפשר לשדרג לגרסה משנית חדשה שזמינה ב-Regular. לדוגמה, אפשר לשדרג לגרסה 1.36.

אפשר להשתמש בשיטות הבאות כדי לשדרג את גרסת רמת הבקרה, בהתאם לסוג השדרוג:

  • שדרוגים של גרסאות תיקון: אפשר להשתמש בשדרוג בשלב אחד.
  • שדרוגים של גרסאות משניות: אפשר להשתמש בשדרוג בשלב אחד או בשדרוג בשני שלבים.

מידע נוסף על השיטות האלה ועל אופן השימוש בהן זמין במאמר שדרוג מישור הבקרה של האשכול.

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

שדרוגים של Surge

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

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

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

דרישות המכסה לשדרוגים בתקופות של ביקוש גבוה

בניגוד ליצירה מחדש של צמתים, שדרוגים מהירים דורשים משאבי Compute Engine נוספים. הקצאת המשאבים תלויה במכסה הזמינה ב-Compute Engine. בהתאם להגדרות, המכסה הזו יכולה להגביל את מספר השדרוגים המקבילים או אפילו לגרום לשדרוג להיכשל. כדי למנוע בעיות בהרחבת הקיבולת ולשדרג בצורה צפויה יותר, מומלץ לוודא שהניצול של מכונת Compute Engine לא עולה על 90%.

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

קבלת התראות על שדרוג

פלטפורמת GKE מפרסמת התראות על שדרוגים ב-Pub/Sub, וכך מספקת לכם ערוץ לקבלת מידע מ-GKE על האשכולות שלכם.

מידע נוסף זמין במאמר בנושא קבלת התראות על אשכולות.

שדרוגי רכיבים

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

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

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