אדמינים של פלטפורמות יכולים להגדיר אסטרטגיית שדרוג של צמתים כדי להתאים את האופן שבו Google Kubernetes Engine (GKE) משדרג את הצמתים באשכולות GKE. למידע נוסף על אסטרטגיות לשדרוג צמתים, ראו אסטרטגיות לשדרוג צמתים.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם כבר התקנתם את ה-CLI של gcloud, הריצו את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
דרישות
- כדי להשתמש בשדרוגים אוטומטיים של blue-green, מישור הבקרה של האשכול צריך להריץ גרסה 1.34.0-gke.2201000 ואילך, וצריך להפעיל את המידרוג האוטומטי של האשכול.
הגדרת אסטרטגיית שדרוג של צומת
כשמגדירים את מאגרי הצמתים הרגילים של האשכול, אפשר לבחור ולהגדיר אחת מהאסטרטגיות הבאות לשדרוג צמתים:
שימוש באסטרטגיות השדרוג האלה מאפשר לכם לבצע אופטימיזציה של תהליך השדרוג של מאגר הצמתים, בהתאם לצרכים של סביבת האשכול. במאגרי צמתים שמנוהלים על ידי Autopilot באשכולות רגילים נעשה שימוש בשדרוגים מצטברים, ואי אפשר לבחור אסטרטגיה אחרת או לשנות את ההגדרה.
הגדרת שדרוגים זמניים
שדרוגים במקביל מאפשרים לשנות את מספר הצמתים ש-GKE משדרג בבת אחת, ואת מידת ההפרעה של השדרוג לעומסי העבודה.
הדגלים max-surge-upgrade ו-max-unavailable-upgrade מוגדרים לכל מאגר צמתים. מידע נוסף על בחירת הפרמטרים הנכונים זמין במאמר אופטימיזציה של הגדרת השדרוג במתח.
אפשר לשנות את ההגדרות האלה כשיוצרים או מעדכנים אשכול או מאגר צמתים.
המשתנים הבאים משמשים בפקודות שמוזכרות בהמשך:
-
CLUSTER_NAME: שם האשכול של מאגר הצמתים. -
COMPUTE_ZONE: האזור של האשכול. -
NODE_POOL_NAME: שם מאגר הצמתים. -
NUMBER_NODES: מספר הצמתים במאגר הצמתים בכל אחד מהאזורים של האשכול. -
SURGE_NODES: מספר הצמתים הנוספים (למקרה של עלייה חדה בביקוש) שייווצרו בכל שדרוג של מאגר הצמתים. -
UNAVAILABLE_NODES: מספר הצמתים שלא יכולים להיות זמינים בו-זמנית בכל שדרוג של מאגר הצמתים.
יצירת אשכול עם פרמטרים ספציפיים של עלייה פתאומית בביקוש
כדי ליצור אשכול עם הגדרות ספציפיות לשדרוגי מתח, משתמשים בדגלים max-surge-upgrade ו-max-unavailable-upgrade.
gcloud container clusters create CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESיצירת אשכול עם שדרוג מתח מושבת
כדי ליצור אשכול בלי שדרוגים זמניים, מגדירים את הערך של הדגל max-surge-upgrade ל-0.
gcloud container clusters create CLUSTER_NAME \
--max-surge-upgrade=0 --max-unavailable-upgrade=1יצירת מאגר צמתים עם פרמטרים ספציפיים של עלייה חדה
כדי ליצור מאגר צמתים באשכול קיים עם הגדרות ספציפיות לשדרוגים מצטברים, משתמשים בדגלים max-surge-upgrade ו-max-unavailable-upgrade.
gcloud container node-pools create NODE_POOL_NAME \
--num-nodes=NUMBER_NODES --cluster=CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESשינוי ההגדרות של שדרוג מתח במאגר צמתים קיים
כדי לעדכן את הגדרות השדרוג של מאגר צמתים קיים, משתמשים בדגלים max-surge-upgrade ו-max-unavailable-upgrade. אם מגדירים את max-surge-upgrade למספר גדול מ-0, GKE יוצר צמתים זמניים. אם מגדירים את max-surge-upgrade לערך 0, GKE לא יוצר צומתי עלייה חדה.
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--max-surge-upgrade=SURGE_NODES --max-unavailable-upgrade=UNAVAILABLE_NODESבדיקה אם שדרוגים מהירים מופעלים במאגר צמתים
כדי לבדוק אם שדרוגים של עומס מופעלים במאגר צמתים, משתמשים בפקודה gcloud כדי לתאר את הפרמטרים של האשכול:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAMEאם שדרוגים מהירים מופעלים במאגר הצמתים, האסטרטגיה שמופיעה היא SURGE.
הגדרת שדרוגים כחול-ירוק
שדרוגים כחול-ירוק של מאגרי צמתים מאפשרים לכם לשלוט ב:
-
BATCH_NODE_COUNTאוBATCH_PERCENT: גודל קבוצות הצמתים ש-GKE מרוקן בכל פעם, כלומר הפודים מוסרים מהצמתים. ברירת המחדל היאBATCH_NODE_COUNT=1. אם אחת מההגדרות האלה היא 0, GKE מדלג על השלב הזה ועובר לשלב השהיית מאגר הצמתים. -
BATCH_SOAK_DURATION: הזמן בין כל אצווה של צמתים שמתבצעת בהם פעולת ניקוי. -
NODE_POOL_SOAK_DURATION: משך זמן הטבילה שבו אתם יכולים לאמת את עומס העבודה בהגדרת הצומת החדשה.
מידע נוסף על השלבים בשדרוגים מסוג blue-green זמין במאמר השלבים בשדרוגים מסוג blue-green.
המשתנים הבאים משמשים בפקודות שמפורטות בקטעים הבאים:
-
CLUSTER_NAME: שם האשכול של מאגר הצמתים. -
NODE_POOL_NAME: שם מאגר הצמתים. -
NUMBER_NODES: מספר הצמתים במאגר הצמתים בכל אחד מהאזורים של האשכול. -
BATCH_NODE_COUNT: מספר הצמתים הכחולים שיש לרוקן באצווה במהלך שלב הריקון של המאגר הכחול. ברירת המחדל היא 1. אם הערך הוא 0, שלב הניקוז של המאגר הכחול יידלג. -
BATCH_PERCENT: אחוז הצמתים הכחולים שצריך לרוקן באצווה במהלך שלב הריקון של המאגר הכחול, מבוטא כערך עשרוני בין 0 ל-1, כולל. GKE מעגלת כלפי מטה למספר הצמתים הקרוב ביותר, לערך מינימלי של צומת אחד, אם האחוז לא מייצג מספר שלם של צמתים. אם הערך הוא 0, המערכת תדלג על שלב ניקוז המאגר הכחול. -
BATCH_SOAK_DURATION: משך הזמן בשניות להמתנה אחרי כל ניקוז של קבוצת נתונים. ברירת המחדל היא 0. -
NODE_POOL_SOAK_DURATION: משך הזמן בשניות להמתנה אחרי השלמת הניקוז של כל האצוות. ברירת המחדל היא 3,600 שניות.
יצירת מאגר צמתים שמשתמש באסטרטגיית השדרוג כחול-ירוק
יצירת מאגר צמתים שמשתמש בפרמטרים של ברירת המחדל לשדרוג כחול-ירוק
כדי ליצור מאגר צמתים באשכול קיים שמשתמש באסטרטגיית השדרוג כחול-ירוק עם הפרמטרים שמוגדרים כברירת מחדל, משתמשים בפקודה הבאה:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade
יצירת מאגר צמתים שמשתמש בשדרוגים כחול-ירוק עם גודלי אצווה של מספר צמתים מוחלט
כדי ליצור מאגר צמתים שמשתמש בהגדרות שדרוג כחול-ירוק בהתאמה אישית, משתמשים בדגלי הפרמטרים עם הפקודה ליצירת מאגר צמתים.
הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של כחול-ירוק, באמצעות מספר מוחלט של צמתים לניקוזים באצווה:
BATCH_NODE_COUNT= 2-
BATCH_SOAK_DURATION= 10s NODE_POOL_SOAK_DURATION= 600s
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
--node-pool-soak-duration=600s
יצירת מאגר צמתים שמשתמש בשדרוג כחול-ירוק עם גודלי אצווה שמבוססים על אחוזים
הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של blue-green, באמצעות אחוז לניקוז אצווה:
-
BATCH_PERCENTAGE= 25% (מגודל מאגר הצמתים) BATCH_SOAK_DURATION= 10sNODE_POOL_SOAK_DURATION= 1800s
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
--node-pool-soak-duration=1800s
עדכון של מאגר צמתים קיים כדי להשתמש באסטרטגיית השדרוג כחול-ירוק
עדכון מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם פרמטרים שמוגדרים כברירת מחדל
כדי לעדכן מאגר צמתים קיים לשיטת השדרוג blue-green, משתמשים בפקודה הבאה:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade
עדכון של מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם גודלי אצווה של מספר צמתים מוחלט
כדי לעדכן מאגר צמתים קיים לשיטת השדרוג blue-green עם הגדרות מותאמות אישית, משתמשים בדגלי הפרמטרים עם פקודת יצירת מאגר הצמתים.
הפקודה הזו מעדכנת מאגר צמתים לשימוש בהגדרות מותאמות אישית של blue-green, באמצעות מספר צמתים מוחלט לניקוז אצווה:
BATCH_NODE_COUNT= 2-
BATCH_SOAK_DURATION= 10s -
NODE_POOL_SOAK_DURATION= 600s
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-node-count=2,batch-soak-duration=10s \
--node-pool-soak-duration=600s
עדכון מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם גדלי אצווה מבוססי-אחוזים
הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של כחול-ירוק, באמצעות אחוז לניקוזים באצווה:
-
BATCH_PERCENTAGE= 25% (מגודל מאגר הצמתים) BATCH_SOAK_DURATION= 10sNODE_POOL_SOAK_DURATION= 1800s
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-blue-green-upgrade \
--standard-rollout-policy=batch-percent=0.25,batch-soak-duration=10s \
--node-pool-soak-duration=1800s
חזרה לשדרוגים זמניים
אפשר לשנות את ההתנהגות של שדרוגים מסוג blue-green באמצעות הגדרות, ולשלוט בתהליך השדרוג באמצעות פקודות.
עם זאת, אם אתם רוצים להשתמש במקום זאת בשדרוגים מהירים, אתם יכולים להריץ את הפקודה הבאה כדי לחזור לשדרוגים מהירים:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-surge-upgrade
הגדרת שדרוגים כחולים-ירוקים עם התאמה לעומס (autoscaling)
כדי להשתמש בשדרוגים אוטומטיים של blue-green עבור מאגר צמתים, לא צריך להגדיר אף אחד מהפרמטרים הנוספים לגודל אצווה או להשהיה. עם זאת, אתם יכולים להגדיר את משך הזמן בין הגידור לבין הניקוז של הצמתים. לפני שמפעילים את אסטרטגיית השדרוג הזו, כדאי לעיין בשיטות המומלצות ובמגבלות.
יצירת מאגר צמתים שמשתמש בשדרוגים כחול-ירוק עם התאמה לעומס (autoscaling)
יוצרים מאגר צמתים עם שדרוגים כחול-ירוק בהתאמה אוטומטית:
gcloud container node-pools create NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-autoscaling \
--max-nodes=MAX_NODES \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
כדי להגדיר את הפרמטרים MIN_NODE ו-MAX_NODE, אפשר לעיין בהמלצות בנושא הגדרת מאגרים של צמתים וקלאסטרים.
מחליפים את הפרמטר האופציונלי WAIT_FOR_DRAIN_DURATION במספר השניות שצריך להמתין אחרי שמגדירים את המאגר הכחול ואז מרוקנים את הצמתים. אפשר להגדיר את הזמן הזה בין אפס ל-7 ימים, וערך ברירת המחדל הוא 3 ימים (259200 שניות).
עדכון מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם שינוי גודל אוטומטי
כדי לעדכן מאגר צמתים קיים כך שישתמש בשדרוגים של blue-green עם שינוי גודל אוטומטי:
gcloud container node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--enable-blue-green-upgrade \
--autoscaled-rollout-policy=[wait-for-drain-duration=WAIT_FOR_DRAIN_DURATIONs]
מחליפים את הפרמטר האופציונלי WAIT_FOR_DRAIN_DURATION בזמן בשניות שצריך להמתין אחרי שסוגרים את המאגר הכחול ולפני שמרוקנים את הצמתים. אפשר להגדיר את הזמן הזה בין אפס ל-7 ימים, וערך ברירת המחדל הוא 3 ימים (259200 שניות).
בדיקת הגדרות השדרוג של מאגר צמתים
כדי לבדוק את הגדרות השדרוג הנוכחיות של מאגר צמתים, אפשר להשתמש בפקודה הבאה כדי לתאר את מאגר הצמתים:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
הקטע הבא הוא פלט לדוגמה של הפקודה. השדה strategy מציין את אסטרטגיית השדרוג שבה משתמשים:
- SURGE מציין שאסטרטגיית השדרוג המהיר מופעלת.
הערך BLUE_GREEN מציין שאסטרטגיית השדרוג כחול-ירוק מופעלת:
- שדרוגים רגילים של כחול-ירוק מופעלים אם הפלט כולל ערכים של
standardRolloutPolicyבקטעblueGreenSettings. - שדרוגים כחולים-ירוקים עם התאמה אוטומטית לעומס מופעלים אם מוזכר
autoscaledRolloutPolicy.
- שדרוגים רגילים של כחול-ירוק מופעלים אם הפלט כולל ערכים של
upgradeSettings:
blueGreenSettings:
nodePoolSoakDuration: 1800s
standardRolloutPolicy:
batchNodeCount: 1
batchSoakDuration: 10s
strategy: BLUE_GREEN
הפקודה הזו גם מציגה את השלב הנוכחי של שדרוג כחול-ירוק שנמצא בתהליך. מידע נוסף על בדיקת הגדרות השדרוג של מאגר צמתים
המאמרים הבאים
- מידע נוסף על אסטרטגיות לשדרוג צמתים
- איך משדרגים ידנית אשכול או מאגר צמתים
- מידע נוסף על חלונות תחזוקה והחרגות
- מידע נוסף על שדרוגים של אשכולות Standard
- איך מגדירים שדרוגים אוטומטיים של צמתים