במאמר הזה נסביר איך פועלים שדרוגים אוטומטיים באשכולות 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 משדרג את הצמתים לאותה גרסת GKE.
ב-Autopilot, GKE מקבץ צמתים עם מאפיינים דומים. GKE משתמש בשדרוגים מדורגים לצמתים של Autopilot, ומשדרג עד 20 צמתים בקבוצה בו-זמנית. המספר המדויק של הצמתים שמשודרגים בו-זמנית משתנה כדי להבטיח זמינות גבוהה מתמשכת של צמתים ועומסי עבודה.
שדרוגים של צמתים עשויים להימשך כמה שעות, בהתאם למספר הצמתים ולתצורת עומסי העבודה שפועלים בצמתים. לדוגמה, ההגדרות הבאות יכולות להאריך את זמן השדרוג:
- ערך גבוה של
terminationGracePeriodSecondsבתצורה של Pod. PodDisruptionBudgetשמרני.- אינטראקציות עם העדפות צומת.
- מצורף
PersistentVolumes.
אם מגדירים חלון זמן לתחזוקה או החרגה, מערכת GKE תכבד את ההגדרה אם הדבר אפשרי.
כש-GKE משדרג צומת, השלבים הבאים מתבצעים:
- GKE יוצר צומת זמני חדש עם גרסת GKE החדשה וממתין עד שהצומת הזמני יירשם במישור הבקרה.
- מערכת GKE בוחרת צומת קיים לשדרוג, צומת היעד.
- GKE cordons את צומת היעד, ומונעת הצבה של Pods חדשים בצומת היעד.
- GKE מרוקן את צומת היעד, ומסלק את ה-Pods הקיימים מצומת היעד.
- ההגדרה
PodDisruptionBudgetתקפה למשך שעה אחת. -
terminationGracePeriodSecondsמוגבל ל-10 דקות (600 שניות) ברוב ה-Pods, למעט Spot Pods, שמוגבלים ל-25 שניות.
- ההגדרה
GKE מתזמן מחדש את ה-Pods שמנוהלים על ידי בקר עומסי עבודה בצמתים זמינים אחרים. תאי Pod שלא ניתן לתזמן מחדש נשארים במצב
PENDINGעד ש-GKE יכול לתזמן אותם מחדש.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 משדרגת את הצמתים באופן אוטומטי כך שיתאימו לגרסה של מישור הבקרה, בהקדם האפשרי, בכפוף לזמינות של תחזוקה. הוראות מפורטות מופיעות במאמר שדרוג ידני של מישור הבקרה. אי אפשר לנהל באופן ידני את גרסת הצומת עבור אשכולות 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 מציין את גרסת התיקון שבה הם נכללים. כדי לקבל את הגרסה העדכנית של רכיב, אפשר לעיין במסמכים שקשורים אליו או בהערות לגבי הגרסה כדי לקבל הוראות לשדרוג של מישור הבקרה או הצמתים לגרסה המתאימה.
המאמרים הבאים
- הגדרת חלונות תחזוקה והחרגות.
- מידע נוסף על ניהול שדרוגים אוטומטיים של אשכולות בסביבות שונות באמצעות פריסה מדורגת
- צפייה בסרטון שדרוגים של אשכולות GKE: שיטות מומלצות ליציבות, לאבטחה ולביצועים של אשכולות GKE