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

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

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

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

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

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

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

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

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

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

לדוגמה, נניח שיש לכם אשכול Autopilot שמופעלת בו גרסה GKE‎ 1.22.8-gke.202 בערוץ ההפצה הרגיל. ההתנהגות הבאה חלה:

  • אתם יכולים לשדרג לכל גרסה במהדורת Regular.
  • אתם יכולים לשדרג לכל גרסת תיקון של 1.22 בערוץ המהיר.

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

שדרוגים של Surge

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

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

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

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

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

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

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

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

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

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

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

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

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