במאמר הזה מוסבר איך להפעיל ולנהל עדכונים של מאגרי צמתים. מידע על האופן שבו עדכונים מהירים של מאגרי צמתים פועלים זמין במאמר בנושא עדכונים מהירים.
דברים שכדאי להביא בחשבון לפני שמריצים עדכונים של עלייה פתאומית בביקוש
לפני שמריצים עדכון של עלייה פתאומית בביקוש, חשוב לזכור את הנקודות הבאות:
- יכול להיות שמספר המופעים הנוספים שנוצרו כחלק משלב העלייה החדה הזה יעלה על מכסת המופעים המותרת ב-AWS. אם אין לכם מספיק מכסה ולא ניתן להקצות את המופעים הנוספים האלה, יכול להיות שהעדכון ייכשל.
- אם הערך של
max-unavailable-updateהוא 0, עדיין יכולות להיות הפרעות בעומסי העבודה כי ה-Pods מפונים ומתוזמנים מחדש בצמתים החדשים יותר. - המספר המקסימלי של צמתים שאפשר לעדכן בו-זמנית שווה לסכום של
max-surge-updateו-max-unavailable-update, ומוגבל ל-20.
הפעלה והגדרה של עדכונים בזמן עלייה חדה בביקוש
כדי להפעיל עדכונים מהירים, צריך לפנות אל Google Cloud התמיכה. אחרי שצוות התמיכה יפעיל את התכונה, תוכלו להקצות ערכים לפרמטרים max-surge-update ו-max-unavailable-update כשאתם יוצרים או מעדכנים את מאגר הצמתים:
יצירה
gcloud container aws node-pools create NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--max-surge-update MAX_SURGE \
--max-unavailable-update MAX_UNAVAILABLE
עדכון
gcloud container aws node-pools update NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--max-surge-update MAX_SURGE \
--max-unavailable-update MAX_UNAVAILABLE
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים שרוצים לעדכן. -
CLUSTER_NAME: שם האשכול. -
GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה,us-west1. -
MAX_SURGE: המספר המקסימלי של צמתים נוספים שאפשר ליצור באופן זמני מעבר לגודל הנוכחי של מאגר הצמתים במהלך עדכון. שינוי הערך הזה מאפשר לקבוע כמה צמתים יעודכנו בו-זמנית. ההגדרה שמוגדרת כברירת מחדל היא 1, אבל אפשר להגדיר אותה כ-0. אם מגדירים אתmax-surge-updateלערך שגדול מ-0, GKE on AWS יוצר צמתים זמניים. אם מגדירים את הערך ל-0, הצמתים האלה לא נוצרים. -
MAX_UNAVAILABLE: המספר המקסימלי של הצמתים שיכולים להיות לא זמינים בו-זמנית במהלך תהליך העדכון. הגדלת הערך הזה מאפשרת לעדכן יותר צמתים בו-זמנית. ערך ברירת המחדל הוא 0, אבל אפשר להגדיל אותו.
בדיקת הגדרות העדכון של העלייה הזמנית בקיבולת של מאגר צמתים
כדי לראות את הגדרות העדכון של העלייה הפתאומית של מאגר צמתים, מריצים את הפקודה הבאה:
gcloud alpha container aws node-pools describe NODE_POOL_NAME
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים. -
CLUSTER_NAME: שם האשכול. -
GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה,us-west1.
אם הפעלתם עדכונים מצטברים במאגר הצמתים, הפלט של הפקודה הזו יציג קטע עם התווית surge_settings. בקטע surge_settings הזה מוצגים הערכים של הפרמטרים max_surge ו-max_unavailable.
ניהול עדכונים של תנודות בביקוש שנמצאים בתהליך
אפשר לבטל עדכון של עלייה פתאומית בביקוש שנמצא בעיצומו, לבצע חזרה לגרסה קודמת של עדכון של עלייה פתאומית בביקוש שנכשל או להמשיך עדכון שהופסק.
ביטול (השהיה) וחידוש של עדכון עלייה בביקוש
ב-GKE ב-AWS, 'ביטול' של עדכון פתאומי למעשה אומר השהיה שלו. לפרטים על ביטול עדכון, אפשר לעיין במאמר ביטול פעולת עדכון.
במילים אחרות, ביטול של עדכון עלייה פתאומית בנפח התנועה לא מבטל את העדכון. במקום זאת, יכול להיות שמאגר הצמתים יישאר במצב של עדכון חלקי עם שתי קבוצות של שינוי גודל אוטומטי: אחת עם צמתים שמריצים את ההגדרה הקודמת ואחת עם צמתים שמריצים את ההגדרה החדשה. כדי לפתור את הבעיה הזו, מריצים שוב את פקודת העדכון עם אותם פרמטרים של יעד כמו בפעולה שהופסקה, כדי להמשיך את העדכון של העלייה הזמנית בנפח התנועה. אי אפשר להתחיל עדכון עם פרמטרים שונים של מאגר צמתים עד שהעדכון הקודם מסתיים.
ביצוע חזרה לגרסה קודמת של עדכון שדרוג שנכשל
אפשר לבטל את העדכון של מאגר הצמתים ולחזור למצב המקורי שלו אם העדכון בוטל או נכשל.
נקודות למחשבה לפני שמבטלים עדכון מהיר
- אפשר לבטל את העדכון רק של מאגר צמתים עם תכונת הגדלת הקיבולת שסטטוס העדכון שלו הוא 'עדכון חלקי' (או
DEGRADED). - אחרי שמתחילים להפעיל את הגרסה הקודמת במאגר צמתים, אי אפשר לבטל את הפעולה.
- לא תוכלו לבצע פעולות עדכון נוספות עד שפעולת החזרה לגרסה הקודמת תסתיים בהצלחה.
- אפשר לנסות שוב לבצע חזרה לגרסה קודמת רק אם הפעולה נכשלת.
- אי אפשר לבטל את העדכון של מאגרי צמתים אחרי שהוא הושלם בהצלחה.
איך מבצעים חזרה לגרסה קודמת של עדכון שגיאה
כדי לבטל פעולת עדכון לא מוצלחת במאגר הצמתים, מריצים את הפקודה הבאה:
gcloud container aws node-pools rollback NODE_POOL_NAME
--cluster CLUSTER_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: השם של מאגר הצמתים שרוצים לעדכן. -
CLUSTER_NAME: שם האשכול.
איך מתבצעת החזרה למצב הקודם
הפעלת חזרה לגרסה קודמת באופן פנימי מתחילה פעולת עדכון חדשה במאגר הצמתים. (המשמעות של 'פנימי' כאן היא שהתהליך הזה מתבצע בתוך המערכת עצמה, ולא נדרשת התערבות מצדכם). הפעולה מחזירה את הצמתים של מאגר הצמתים למצב המקורי שלהם על בסיס המאמץ הטוב ביותר.
הצמתים ששייכים לקבוצת שינוי הגודל האוטומטי הישנה לא מוגנים, והאפשרות של שינוי הגודל האוטומטי של האשכול מופעלת כדי לאפשר תזמון של עומסי עבודה בצמתים. צמתים של מאגר צמתים שעודכנו באופן חלקי בקבוצת ההתאמה האוטומטית לעומס החדשה מסומנים כ-cordoned, מרוקנים ומסיימים את הפעולה על סמך הגדרות הגידול שהגדרתם בניסיון העדכון הראשוני של הגידול.
ניהול עדכונים שנכשלו בגלל עלייה פתאומית בביקוש
יש שלוש אפשרויות לטיפול בעדכון שנכשל:
- המשך העדכון: אפשר להמשיך עם העדכון שנכשל באמצעות אותן הגדרות של מאגר הצמתים של היעד כמו בניסיון הראשוני שנכשל.
- ביטול שינויים: משתמשים בפקודה לביטול שינויים כדי להחזיר את מאגר הצמתים למצב המקורי שלו.
- שינוי והפעלה מחדש: אם רוצים לשנות את הפרמטרים של עדכון העלייה, צריך למחוק את מאגר הצמתים הקיים ואז ליצור אותו מחדש עם ההגדרות החדשות. הוראות למחיקת מאגר צמתים מופיעות במאמר מחיקת מאגר צמתים.