שיעור 7: עדכונים מתגלגלים וחזרה אחורה (rollback)
כבר יש לנו Deployment ששומר על כמה עותקים (Pods) של האפליקציה. אבל מה קורה כשרוצים לעדכן גרסה — למשל להחליף את ה-image מ-nginx:1.27 ל-nginx:1.28? הדרך התמימה היא להפיל את הכול ולהקים מחדש, אבל אז השירות נופל לכמה שניות וכל המשתמשים מרגישים. Kubernetes פותר את זה עם «עדכון מתגלגל» (rolling update): ה
זה כמו להחליף גלגלים באוטו בלי לעצור אותו — מחליפים גלגל אחד כל פעם, אז האוטו ממשיך לנסוע. ואם הגלגל החדש עקום, פשוט מחזירים את הישן.
- עדכון מתגלגל
- דרך לעדכן Deployment בלי זמן השבתה: Kubernetes מחליף את ה-Pods הישנים בחדשים בהדרגה, כמה בכל פעם, כך שתמיד נשארים מספיק עותקים פעילים שעונים לבקשות.
- חזרה אחורה
- החזרת ה-Deployment לגרסה (revision) הקודמת שעבדה, כשהגרסה החדשה מתגלה כתקולה. הפקודה kubectl rollout undo עושה זאת בצעד אחד.
- מצב ה-rollout
- מעקב חי אחרי התקדמות עדכון: כמה Pods כבר עודכנו מתוך הסך הכול, עד שההודעה מאשרת שהעדכון הושלם בהצלחה.
- maxUnavailable
- כמה Pods מותר שיהיו לא-זמינים בו-זמנית במהלך עדכון מתגלגל. ערך נמוך שומר על יותר עותקים פעילים בכל רגע, אך מאט את העדכון.
- maxSurge
- כמה Pods נוספים מעבר ליעד מותר ליצור זמנית במהלך עדכון, כדי שיהיו עותקים חדשים מוכנים לפני שמסירים ישנים.
- רוויזיה
- גרסה שמורה של ה-Deployment. כל עדכון יוצר רוויזיה חדשה, ו-Kubernetes זוכר את הקודמות כדי שאפשר יהיה לחזור אליהן.