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

אדמינים של פלטפורמות יכולים להגדיר אסטרטגיית שדרוג צמתים כדי לשנות את האופן שבו Google Kubernetes Engine‏ (GKE) משדרג את הצמתים באשכולות GKE. מידע נוסף על אסטרטגיות לשדרוג צמתים זמין במאמר אסטרטגיות לשדרוג צמתים.

לפני שמתחילים

לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

דרישות

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

כשמגדירים את מאגרי הצמתים הרגילים של האשכול, אפשר לבחור ולהגדיר אחת משיטות שדרוג הצמתים הנתמכות הבאות:

השימוש באסטרטגיות השדרוג האלה מאפשר לכם לבצע אופטימיזציה של תהליך השדרוג של מאגר הצמתים בהתאם לצרכים של סביבת האשכול. מאגרי צמתים שמנוהלים על ידי 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 מדלג על השלב הזה וממשיך לשלב Soak node pool.
  • 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 שניות.

יצירת מאגר צמתים שמשתמש באסטרטגיית השדרוג blue-green

יצירת מאגר צמתים שמשתמש בפרמטרים שמוגדרים כברירת מחדל לשדרוג blue-green

כדי ליצור מאגר צמתים באשכול קיים שמשתמש בשיטת השדרוג blue-green עם פרמטרי ברירת המחדל, משתמשים בפקודה הבאה:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --enable-blue-green-upgrade

יצירת מאגר צמתים שמשתמש בשדרוגים מסוג blue-green עם גדלים מוחלטים של אצוות של מספר הצמתים

כדי ליצור מאגר צמתים שמשתמש בהגדרות שדרוג בהתאמה אישית בשיטת Blue-Green, משתמשים בדגלי הפרמטרים עם הפקודה ליצירת מאגר צמתים.

הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של blue-green, באמצעות מספר צמתים מוחלט עבור הניקוז של הקבוצה:

  • BATCH_NODE_COUNT = 2
  • BATCH_SOAK_DURATION = 10 שניות
  • 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 עם גדלים של קבוצות מבוססי-אחוזים

הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של blue-green, באמצעות אחוז לניקוז של קבוצת הצמתים:

  • BATCH_PERCENTAGE = 25% (מגודל מאגר הצמתים)
  • BATCH_SOAK_DURATION = 10 שניות
  • NODE_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

עדכון מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם פרמטרים שמוגדרים כברירת מחדל

כדי לעדכן מאגר צמתים קיים לשיטת השדרוג 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 = 10 שניות
  • 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

עדכון מאגר צמתים לשימוש בשדרוגים כחול-ירוק עם גדלי אצווה מבוססי-אחוזים

הפקודה הזו יוצרת מאגר צמתים עם ההגדרה המותאמת אישית הבאה של blue-green, באמצעות אחוז לניקוז של קבוצת הצמתים:

  • BATCH_PERCENTAGE = 25% (מגודל מאגר הצמתים)
  • BATCH_SOAK_DURATION = 10 שניות
  • NODE_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

הגדרת שדרוגים אוטומטיים של blue-green

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

יצירת מאגר צמתים שמשתמש בשדרוגים אוטומטיים של blue-green

יוצרים מאגר צמתים עם שדרוגים אוטומטיים של blue-green:

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 מצוינת אסטרטגיית השדרוג שנמצאת בשימוש:

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

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

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