שדרוג אשכול

שדרוג של תחנת העבודה של האדמין, אשכולות המשתמשים ואשכולות האדמין ב-Google Distributed Cloud (תוכנה בלבד) ל-VMware מאפשר לכם להשתמש בגרסאות נתמכות של Kubernetes, בתיקוני אבטחה ובפיצ'רים של הפלטפורמה. במאמר הזה מוסבר איך משדרגים ביחד את מישור הבקרה ואת מאגרי הצמתים של אשכול משתמש. כדי לשדרג אותם בנפרד, קראו את המאמר שדרוג מאגרי צמתים.

לפני שמתחילים, כדאי לעיין בסקירה הכללית של השדרוג כדי לבחור את הכלים ואת סדר השדרוג, בכללי השדרוג של הגרסאות כדי לבדוק את הדרישות של מערכת ההפעלה ואת ההבדלים בין הגרסאות הספציפיות לגרסה, ובשיטות המומלצות לשדרוג כדי לעיין ברשימות המשימות לפני השדרוג.

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

  • לפני שמתחילים את השדרוג, חשוב לוודא שיש לכם גיבוי עדכני של אשכולות האדמין והמשתמשים. מידע נוסף זמין במאמר גיבוי אשכולות של משתמשים ואדמינים.

  • אבחון האשכול לפני השדרוג. מריצים את הפקודה gkectl diagnose cluster כדי לוודא שאשכול האדמין תקין, ופותרים את כל הבעיות לפני שמתחילים בשדרוג.

  • חשוב לוודא שגרסת ה-gkectl והאשכולות מתאימה לשדרוג, ושהורדתם את החבילה המתאימה. ההבדל בין הגרסאות של אשכולות האדמין והמשתמשים תלוי בגרסה של Google Distributed Cloud. כדי לוודא שאפשר לשדרג את אשכול האדמין, עיינו בכללי הגרסה של הגרסה שלכם.

  • מוודאים שהשדה bundlepath בקובץ התצורה של אשכול האדמין תואם לנתיב של החבילה שאליה רוצים לשדרג.

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

בדיקת הכללים של חומת האש

בגרסה 1.29 ואילך, בדיקות מקדימות בצד השרת מופעלות כברירת מחדל. בדיקות מקדימות בצד השרת דורשות כללים נוספים של חומת האש. במאמר כללי חומת אש לאשכולות אדמין, חפשו את "בדיקות מקדימות" וודאו שכל כללי חומת האש הנדרשים מוגדרים.

כשמשדרגים אשכול משתמש באמצעות gkectl, בדיקות מקדימות בצד השרת פועלות באשכול האדמין במקום באופן מקומי בתחנת העבודה של האדמין. בדיקות מקדימות בצד השרת פועלות גם באשכול האדמין כשמשתמשים במסוף Google Cloud , ב-Google Cloud CLI או ב-Terraform כדי לשדרג אשכול.

כשמשדרגים אשכול אדמין, Google Distributed Cloud פורס אשכול Kubernetes in Docker (kind) כדי לארח באופן זמני את בקרי Kubernetes שנדרשים לשדרוג אשכול האדמין. האשכול הזמני הזה נקרא אשכול אתחול. בדיקות מקדימות בצד השרת מופעלות באשכול ה-bootstrap כשמשדרגים אשכול אדמין.

הפעל את stackdriver

אם יצרתם את אשכול המשתמשים באמצעות gkectl, לפני השדרוג ודאו שהקטע stackdriver בקובץ התצורה של אשכול המשתמשים מלא, כדי להפעיל את stackdriver (שנדרש לרישום ביומן ולמעקב). אם stackdriver לא מופעל, ממלאים את הקטע stackdriver בקובץ התצורה של אשכול המשתמש ומעדכנים את האשכול לפני השדרוג.

אם יצרתם את האשכול באמצעות Terraform, מסוף Google Cloud או ה-CLI של gcloud,‏ stackdriver מופעל באופן אוטומטי.

הפעלת Dataplane V2

החל מגרסה 1.31, צריך להפעיל את Dataplane V2 בכל אשכולות המשתמשים. לפני שמשדרגים אשכול משתמש לגרסה 1.31, צריך לבצע את הפעולות הבאות. אם אתם חוששים להסיר באופן זמני את המפרט של NetworkPolicy, פנו לתמיכה של Google.

מגדירים את enableDataplaneV2 לערך true בקובץ התצורה של אשכול המשתמשים.

אם באשכול שלכם נעשה שימוש ב-NetworkPolicy, צריך להסיר באופן זמני את המפרט שלו מהאשכול, באופן הבא:

  1. בודקים אם יש NetworkPolicy שלא שייך למערכת ומוגדר באשכול:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
        get networkpolicy -A -o wide \
        --field-selector metadata.namespace!=kube-system
    

    מחליפים את USER_CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של אשכול המשתמש.

    אם קיימות רק כללי מדיניות של kube-system שמוגדרים כברירת מחדל, הפקודה מחזירה את הערך No resources found.

  2. אם הפקודה הקודמת מציגה אובייקטים מסוג NetworkPolicy, שומרים כל מפרט של NetworkPolicy בקובץ כדי שתוכלו להחיל מחדש את המפרט אחרי שדרוג האשכול:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get networkpolicy NETWORK_POLICY_NAME -n NETWORK_POLICY_NAMESPACE -o yaml > NETWORK_POLICY_NAME.yaml
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫NETWORK_POLICY_NAME: השם של ה-NetworkPolicy שאתם שומרים.
    • ‫NETWORK_POLICY_NAMESPACE: מרחב השמות של NetworkPolicy.
  3. מוחקים את NetworkPolicy באמצעות הפקודה הבאה:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete networkpolicy NETWORK_POLICY_NAME -n NETWORK_POLICY_NAMESPACE
    
  4. ממשיכים בשדרוג.

  5. בסיום השדרוג, אם הסרתם מפרטים של NetworkPolicy שלא שייכים למערכת, אתם צריכים להחיל אותם מחדש באמצעות הפקודה הבאה:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG apply -f NETWORK_POLICY_NAME.yaml
    

דרישות לגבי Google API ו-IAM

כדי לשדרג אשכול לגרסה 1.28 ואילך, צריך להפעיל את kubernetesmetadata.googleapis.com ולהקצות את התפקיד kubernetesmetadata.publisher ב-IAM לחשבון השירות של רישום ביומן ומעקב. השינויים האלה נדרשים כדי להשתמש ב-Cloud Monitoring.

  1. הפעלה של kubernetesmetadata.googleapis.com:

    gcloud services enable --project PROJECT_ID  \
        kubernetesmetadata.googleapis.com
    

    מחליפים את PROJECT_ID במזהה של פרויקט המארח של ה-Fleet שאשכול המשתמש חבר בו. זה הפרויקט שציינתם כשהאשכול נוצר. אם יצרתם את האשכול באמצעות gkectl, זהו מזהה הפרויקט בשדה gkeConnect.projectID בקובץ התצורה של האשכול.

  2. אם הארגון שלכם הגדיר רשימת היתרים שמאפשרת לתנועה מ-Google APIs ומכתובות אחרות לעבור דרך שרת ה-proxy, הוסיפו את kubernetesmetadata.googleapis.com לרשימת ההיתרים.

  3. מקצים את התפקיד kubernetesmetadata.publisher לחשבון השירות של רישום ביומן ומעקב:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role "roles/kubernetesmetadata.publisher"
    

    מחליפים את SERVICE_ACCOUNT_EMAIL בכתובת האימייל של חשבון השירות למעקב אחרי רישום ביומן.

תכונות מדור קודם נחסמות בשדרוגים

התכונות הבאות מדור קודם נחסמות במהלך שדרוג האשכול לגרסה 1.32:

  • Dataplane V1 (Calico)
  • הגדרת מאזן עומסים משולב של F5 Big IP
  • אשכול אדמין ללא זמינות גבוהה (HA)
  • אשכול משתמשים ב-Kubeception
  • מאזן עומסים של Seesaw

לפני שמשדרגים לגרסה 1.32, צריך להעביר את האשכולות לתכונות המומלצות.

דרישות IAM לשדרוג אשכולות משתמשים

אם אתם מתכננים להשתמש ב-gkectl לשדרוג אשכול המשתמשים, דלגו על הקטע הזה.

אם אתם רוצים להשתמש במסוף Google Cloud , ב-Google Cloud CLI או ב-Terraform כדי לשדרג אשכול משתמש, ואתם לא הבעלים של הפרויקט, צריך להקצות לכם את התפקיד roles/gkeonprem.admin בניהול זהויות והרשאות גישה (IAM) בפרויקט Google Cloud שבו נוצר האשכול. במאמר תפקידים ב-GKE on-prem שבמסמכי התיעוד של IAM מפורטות ההרשאות שכלולות בתפקיד הזה.

כדי לשדרג את האשכול באמצעות המסוף, צריך גם את ההרשאות הבאות:

  • roles/container.viewer. התפקיד הזה מאפשר למשתמשים לראות את הדף GKE Clusters ומשאבים אחרים של קונטיינרים במסוף. במאמר תפקידים ב-Kubernetes Engine שבמסמכי התיעוד של IAM מפורטות ההרשאות שכלולות בתפקיד הזה, ומוסבר איך להקצות תפקיד עם הרשאות קריאה/כתיבה.

  • ‫roles/gkehub.viewer. התפקיד הזה מאפשר למשתמשים לראות אשכולות במסוף. במאמר תפקידים ב-GKE Hub שבמסמכי התיעוד של IAM מפורטות ההרשאות שכלולות בתפקיד הזה, ומוסבר איך להקצות תפקיד עם הרשאות קריאה/כתיבה.

מגבלות של אשכולות מתקדמים

אם הפעלתם אשכולות מתקדמים, שימו לב למגבלות הבאות:

  • כשמשדרגים אשכולות מגרסה 1.32 לגרסה 1.33, צריך להשתמש ב-gkectl. הלקוחות של GKE On-Prem API (המסוף, ה-CLI של gcloud ו-Terraform) לא נתמכים בנתיב השדרוג הספציפי הזה, אבל נתמכים בשדרוגים החל מגרסה 1.33.

  • באשכולות מתקדמים בגרסה 1.31 בגרסת טרום-השקה (Preview), או כשממירים אשכול ניהול לא מתקדם לאשכול ניהול מתקדם, צריך להריץ שדרוג סינכרוני. בגרסה 1.32 ואילך, אפשר להשתמש בדגל --async עם הפקודות gkectl upgrade admin ו-gkectl upgrade cluster לאשכולות מתקדמים קיימים.

שינוי הגדרות לפני או אחרי השדרוג

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

בדיקת הגרסאות הזמינות לשדרוגי אשכולות

מריצים את הפקודה הבאה כדי לראות אילו גרסאות זמינות לשדרוג:

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

מחליפים את ADMIN_CLUSTER_KUBECONFIG בנתיב לקובץ ה-kubeconfig של אשכול האדמין.

בפלט מוצגות הגרסה הנוכחית והגרסאות שזמינות לשדרוג.

אם אתם מתכננים להשתמש במסוף, ב-CLI של gcloud או ב-Terraform לצורך השדרוג, הגרסה תהיה זמינה ב-GKE On-Prem API בכל האזורים של Google Cloud תוך 7 עד 14 ימים אחרי ההשקה. במסוף מופיעות רק הגרסאות הזמינות לשדרוג אשכול המשתמשים. השלבים לשדרוג אשכול משתמש באמצעות ה-CLI של gcloud או Terraform כוללים שלב להרצת gcloud container vmware clusters query-version-config כדי לקבל את הגרסאות הזמינות לשדרוג.

שדרוג תחנת העבודה של האדמין

הדרך שבה משדרגים את תחנת העבודה של האדמין תלויה באופן שבו יצרתם אותה: gkeadm או מנוהלת על ידי המשתמש.

gkeadm

איתור הקבצים הנדרשים

לפני שיצרתם את תחנת העבודה של האדמין, מילאתם קובץ תצורה של תחנת עבודה של אדמין שנוצר על ידי gkeadm create config. שם ברירת המחדל של הקובץ הוא admin-ws-config.yaml.

בנוסף, לתחנת העבודה יש קובץ מידע. שם ברירת המחדל של הקובץ הזה זהה לשם של תחנת העבודה של האדמין.

מאתרים את קובץ התצורה של תחנת העבודה של האדמין ואת קובץ המידע. הם נדרשים כדי לבצע את שלבי השדרוג. אם הקבצים האלה נמצאים בספרייה הנוכחית ויש להם את שמות ברירת המחדל, לא תצטרכו לציין אותם כשתריצו את פקודות השדרוג. אם הקבצים האלה נמצאים בספרייה אחרת, או אם שיניתם את שמות הקבצים, אתם צריכים לציין אותם באמצעות הדגלים --config ו---info-file.

אם קובץ פרטי הפלט חסר, אתם יכולים ליצור אותו מחדש. איך יוצרים מחדש קובץ מידע אם הוא חסר

שדרוג

משדרגים את תחנת העבודה של האדמין:

  1. בודקים את השדה adminWorkstation.diskGB בקובץ התצורה של תחנת העבודה של האדמין, ומוודאים שהגודל שצוין הוא לפחות 100, לדוגמה:

    adminWorkstation:
      diskGB: 100
    

    כשמשדרגים לגרסה 1.28 ואילך, נדרשים 100GB, והשדרוג של האשכול נכשל אם אין מספיק מקום בכונן של תחנת העבודה של האדמין.

  2. משרת ה-jump, מורידים את gkeadm:

    gkeadm upgrade gkeadm --target-version TARGET_VERSION
    

    מחליפים את TARGET_VERSION בגרסה שאליה משדרגים. צריך לציין מספר גרסה מלא בפורמט X.Y.Z-gke.N. לרשימה של גרסאות Google Distributed Cloud, ראו ניהול גרסאות.

  3. משדרגים את תחנת העבודה של האדמין:

    gkeadm upgrade admin-workstation --config AW_CONFIG_FILE \
      --info-file INFO_FILE
    

מחליפים את מה שכתוב בשדות הבאים:

  • ‫AW_CONFIG_FILE: הנתיב של קובץ התצורה של תחנת העבודה של האדמין. אפשר להשמיט את הדגל הזה אם הקובץ נמצא בספרייה הנוכחית והשם שלו הוא admin-ws-config.yaml.

  • ‫INFO_FILE: הנתיב של קובץ המידע. אפשר להשמיט את הדגל הזה אם הקובץ נמצא בספרייה הנוכחית. שם ברירת המחדל של הקובץ הזה זהה לשם של תחנת העבודה של האדמין.

בניהול המשתמשים

בתחנת העבודה של האדמין, עוברים לספרייה שבה רוצים להתקין גרסה חדשה של gkectl.

  1. הורדה של gkectl:

     gcloud storage cp gs://gke-on-prem-release/gkectl/TARGET_VERSION/gkectl ./
     chmod +x gkectl
     

    מחליפים את TARGET_VERSION בגרסה שאליה משדרגים. צריך לציין מספר גרסה מלא בפורמט X.Y.Z-gke.N. לרשימה של גרסאות Google Distributed Cloud, ראו ניהול גרסאות.

  2. מורידים את החבילה של Google Distributed Cloud. צריך לוודא שהגרסה תואמת לגרסה שבה השתמשת כדי להוריד את gkectl:

     gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/TARGET_VERSION/gke-onprem-vsphere-TARGET_VERSION.tgz ./
     

שדרוג אשכול האדמין

השלבים לשדרוג אשכול האדמין משתנים מעט בהתאם לגרסה המשנית שאליה משדרגים (גרסת היעד):

‫1.31 ומעלה

אם גרסת היעד היא 1.31 ואילך, לפני שמשדרגים את אשכולות המשתמשים לגרסת המשנה הבאה, צריך לשדרג את אשכול הניהול. בגרסה 1.31 ואילך, גרסת אשכול האדמין, כולל גרסת התיקון, חייבת להיות גדולה או שווה לגרסת אשכול המשתמש. לדוגמה, אם אשכול אדמין הוא בגרסה 1.31.1, הגרסה הגבוהה ביותר שאפשר לשדרג אליה את אשכול המשתמש היא 1.31.1.

מריצים את הפקודה הבאה בתחנת העבודה של האדמין כדי לייבא קובצי אימג' של מערכת ההפעלה ל-vSphere:

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

מחליפים את ADMIN_CLUSTER_KUBECONFIG בנתיב לקובץ ה-kubeconfig של אשכול האדמין.

‫1.30 ומטה

אם גרסת היעד היא 1.30 או גרסה קודמת, צריך לשדרג את כל אשכולות המשתמשים לפני שמשדרגים את אשכול ה-Admin. הגרסה המשנית של אשכול האדמין חייבת להיות שווה לגרסה המשנית של אשכול המשתמש או קטנה ממנה. גרסת התיקון לא משנה. לדוגמה, אם אשכול המשתמש הוא בגרסה 1.30.1, אפשר לשדרג את אשכול האדמין לגרסת תיקון גבוהה יותר, כמו 1.30.3.

ביצוע השדרוג

gkectl

את השלבים בקטע הזה צריך לבצע בתחנת עבודה של אדמין. יש שתי גרסאות לפקודה gkectl upgrade admin:

  • אסינכרוני:
    בגרסה האסינכרונית, הפקודה מתחילה את השדרוג ואז מסתיימת. לא צריך לצפות בפלט של הפקודה לאורך כל השדרוג. במקום זאת, אתם יכולים לבדוק מדי פעם את התקדמות השדרוג על ידי הפעלת gkectl list admin ו-gkectl describe admin. כדי להשתמש בווריאציה האסינכרונית, צריך לכלול את הדגל --async בפקודה.

    דרישות לשדרוג אסינכרוני:

    • נתמך רק באשכולות אדמין עם זמינות גבוהה בגרסה 1.29 ואילך.
    • בכל אשכולות המשתמשים צריך להפעיל את Controlplane V2.
    • גרסה 1.31: לא נתמכת באשכולות מתקדמים.
    • גרסה 1.32 ואילך: זמינה באשכולות מתקדמים.
  • סינכרוני:
    בגרסה הסינכרונית, הפקודה gkectl upgrade admin מפיקה הודעות סטטוס לתחנת העבודה של האדמין בזמן שהשדרוג מתבצע.

שדרוג אסינכרוני

  1. בתחנת העבודה של האדמין, מאבחנים את האשכול לפני השדרוג:

    gkectl diagnose cluster \
       --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    אם הפקודה מדווחת על שגיאות או אזהרות, עיינו בקטע אבחון בעיות באשכול ופתרו אותן לפני שתמשיכו.

  2. מתחילים שדרוג אסינכרוני:

    gkectl upgrade admin \
       --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
       --config ADMIN_CLUSTER_CONFIG_FILE \
       --async
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין.

    • ‫ADMIN_CLUSTER_CONFIG_FILE: הנתיב לקובץ התצורה של אשכול האדמין.

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

  3. כדי לראות את סטטוס השדרוג:

    gkectl list admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    הפלט מציג ערך לאשכול STATE. אם האשכול עדיין משתדרג, הערך של STATE הוא UPGRADING. לדוגמה:

    NAME              STATE         AGE    VERSION
    gke-admin-test    UPGRADING     9h     1.36.100-gke.144
    

    הערכים האפשריים של STATE הם RUNNING,‏ UPGRADING,‏ RECONCILING,‏ ERROR ו-UNKNOWN.

  4. כדי לקבל פרטים נוספים על התקדמות השדרוג ועל אירועים באשכול:

    gkectl describe admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    הפלט מציג את המשאב המותאם אישית OnPremAdminCluster של אשכול האדמין שצוין, כולל הסטטוס והתנאים של האשכול.

    לצפייה בפלט לדוגמה
    Status:
     Cluster State:  RUNNING
     Conditions:
       Last Transition Time:    2026-08-10T20:22:58Z
       Message:                 Operator NodePool is ready
       Observed Generation:     2
       Reason:                  OperatorNodePoolReady
       Status:                  True
       Type:                    ControlPlaneReady
       Last Transition Time:    2026-08-10T20:22:59Z
       Message:                 Cluster is running
       Observed Generation:     2
       Reason:                  ClusterRunning
       Status:                  True
       Type:                    Ready
       Last Transition Time:    2026-08-10T20:23:00Z
       Message:
       Observed Generation:     2
       Reason:                  Reconciling
       Status:                  False
       Type:                    OperatorClusterKubeProxyCleanedUp
       Last Transition Time:    2026-08-10T20:22:58Z
       Message:
       Observed Generation:     2
       Reason:                  PreflightCheckPassed
       Status:                  True
       Type:                    OperatorClusterPreflightCheckSuccessful
       Last Transition Time:    2026-08-10T15:56:50Z
       Message:
       Observed Generation:     2
       Reason:                  ProvisioningStarted
       Status:                  True
       Type:                    OperatorClusterProvisioningStarted
       Last Transition Time:    2026-08-10T15:56:50Z
       Message:
       Observed Generation:     2
       Reason:                  RemoteTrackerSetupComplete
       Status:                  True
       Type:                    OperatorClusterRemoteTrackerSetupSuccessful
       Last Transition Time:    2026-08-10T15:56:50Z
       Message:
       Observed Generation:     2
       Reason:                  Reconciling
       Status:                  False
       Type:                    OperatorClusterStalled
       Last Transition Time:    2026-08-10T15:56:50Z
       Message:
       Observed Generation:     2
       Reason:                  NotPresent
       Status:                  False
       Type:                    OperatorClusterWaitingOnPendingClusterID
       Last Transition Time:    2026-08-10T20:22:59Z
       Message:                 Operator Cluster is ready
       Observed Generation:     2
       Reason:                  OperatorClusterReady
       Status:                  True
       Type:                    OperatorClusterReady
       Last Transition Time:    2026-08-10T15:56:50Z
       Message:                 Component provisioner job is completed
       Observed Generation:     2
       Reason:                  ComponentProvisionerJobCompleted
       Status:                  True
       Type:                    ComponentProvisionerSystemProfileInstalled
       Last Transition Time:    2026-08-10T15:58:20Z
       Message:                 Component provisioner job is completed
       Observed Generation:     2
       Reason:                  ComponentProvisionerJobCompleted
       Status:                  True
       Type:                    ComponentProvisionerAdminProfileInstalled
     Gke On Prem Version:       1.36.0-gke.527
     Last Gke On Prem Version:  1.35.300-gke.87
     Management Conditions:
       Last Transition Time:  2026-08-10T15:58:20Z
       Message:               Component provisioner job is completed
       Observed Generation:   2
       Reason:                ComponentProvisionerJobCompleted
       Status:                True
       Type:                  ManagementProfilesReady
       Last Transition Time:  2026-08-10T15:56:29Z
       Message:               Component provisioner job is completed
       Observed Generation:   2
       Reason:                ComponentProvisionerJobCompleted
       Status:                True
       Type:                  ComponentProvisionerSystemManagementProfileInstalled
       Last Transition Time:  2026-08-10T15:58:20Z
       Message:               Component provisioner job is completed
       Observed Generation:   2
       Reason:                ComponentProvisionerJobCompleted
       Status:                True
       Type:                  ComponentProvisionerManagementProfileInstalled
     Operator Cluster Status:
       Control Plane Node Pool Status:
         Anthos Bare Metal Version:  1.36.0-gke.527
         Anthos Bare Metal Versions:
           1.36.0-gke.527:  3
         Conditions:
           Last Transition Time:  2026-08-10T20:18:20Z
           Observed Generation:   11
           Reason:                PreflightCheckPassed
           Status:                True
           Type:                  PreflightCheckSuccessful
           Last Transition Time:  2026-08-10T20:22:58Z
           Observed Generation:   11
           Reason:                NodepoolReady
           Status:                True
           Type:                  Ready
           Last Transition Time:  2026-08-10T20:22:22Z
           Observed Generation:   11
           Reason:                ReconciliationCompleted
           Status:                False
           Type:                  Reconciling
         Gke Versions:
           v1.36.0-gke.2800:        3
         Last Reconciliation Time:  2026-08-10T20:25:07Z
         Maintenance Nodes:         0
         Managed Fields:
           Label Keys:
             kubernetes.googleapis.com/cluster-name
             node.kubernetes.io/control-plane
             node.kubernetes.io/master
           Node Label Keys:
             vsphere://abcdef-1:
               onprem.gke.io/failure-domain-name
               vmware.cluster.gke.io/machine-name
             vsphere://abcdef-2:
               onprem.gke.io/failure-domain-name
               vmware.cluster.gke.io/machine-name
             vsphere://abcdef-3:
               onprem.gke.io/failure-domain-name
               vmware.cluster.gke.io/machine-name
           Taints:
             Effect:         PreferNoSchedule
             Key:            node-role.kubernetes.io/control-plane
         Ready Nodes:        3
         Ready Timestamp:    2026-08-10T15:54:01Z
         Reconciling Nodes:  0
         Stalled Nodes:      0
         Unknown Nodes:      0
       Data Plane Load Balancer Status:
         Conditions:
           Last Transition Time:  2026-08-10T15:39:16Z
           Observed Generation:   1
           Reason:                ReconciliationCompleted
           Status:                False
           Type:                  Reconciling
         Node Pool Location:      control-plane-nodepool
       External Manifests Conditions:
         Last Transition Time:  2026-08-10T15:56:32Z
         Observed Generation:   2
         Reason:                ReconciliationCompleted
         Status:                False
         Type:                  Reconciling
       Gke Connect Conditions:
         Last Transition Time:  2026-08-10T20:13:39Z
         Observed Generation:   2
         Reason:                AnthosBareMetalVersion
         Status:                True
         Type:                  1.36.0-gke.527
         Last Transition Time:  2026-08-10T20:13:39Z
         Observed Generation:   2
         Reason:                ReconciliationCompleted
         Status:                False
         Type:                  Reconciling
       Gke Connect Dependent System Service Conditions:
         Last Transition Time:  2026-08-10T15:56:32Z
         Observed Generation:   2
         Reason:                ReconciliationCompleted
         Status:                False
         Type:                  Reconciling
       Gke Hub Registration Status:
         Membership:
           Description:  description
           Name:         name
       Gke Versions:
         v1.36.0-gke.2800:  3
       Kernel Version Conditions:
         Last Transition Time:  2026-08-10T15:39:23Z
         Reason:                kernelVersionCheckPassed
         Status:                True
         Type:                  kernelVersionCheckSuccessful
       System Service Conditions:
         Last Transition Time:  2026-08-10T20:12:26Z
         Observed Generation:   2
         Reason:                ReconciliationCompleted
         Status:                False
         Type:                  Reconciling
    

  5. בסיום השדרוג, ב-gkectl list admin מוצג STATE של RUNNING:

    NAME              STATE         AGE    VERSION
    gke-admin-test    RUNNING       9h     1.36.100-gke.144
    

    בנוסף, כשהשדרוג מסתיים, בשדה gkectl describe admin מופיע השדה Last GKE On Prem Version בקטע Status. לדוגמה:

    Status:
      Cluster State:  RUNNING
      Last GKE On Prem Version:  1.36.0-gke.1
    

פתרון בעיות בשדרוג אסינכרוני

בשדרוג אסינכרוני, משך הזמן הקצוב לתפוגה מבוסס על מספר הצמתים באשכול. אם השדרוג נמשך יותר זמן ממשך הזמן הקצוב לתפוגה, מצב האשכול משתנה מ-UPGRADING ל-ERROR, עם אירוע שמציין שזמן הקצוב לתפוגה של פעולת השדרוג הסתיים. שימו לב שהמצב ERROR כאן מציין שהשדרוג נמשך יותר זמן מהצפוי, אבל לא הופסק. הבקר ממשיך בהתאמה ומנסה שוב לבצע את הפעולה. אם השדרוג נחסם או נכשל, אתם יכולים להריץ את הפקודה gkectl diagnose כדי לבדוק אם יש בעיות נפוצות באשכול. על סמך התוצאה, תוכלו להחליט אם לבצע תיקון ידני או לפנות אל Google Cloud התמיכה כדי לקבל עזרה נוספת.

שדרוג סינכרוני

  1. בתחנת העבודה של האדמין, מאבחנים את האשכול לפני השדרוג:

    gkectl diagnose cluster \
       --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    אם הפקודה מדווחת על שגיאות או אזהרות, עיינו בקטע אבחון בעיות באשכול ופתרו אותן לפני שתמשיכו.

  2. משדרגים את אשכול האדמין:

    gkectl upgrade admin \
       --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
       --config ADMIN_CLUSTER_CONFIG_FILE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ kubeconfig של אשכול האדמין.

    • ‫ADMIN_CLUSTER_CONFIG_FILE: הנתיב לקובץ התצורה של אשכול האדמין.

    הפקודה gkectl upgrade מריצה בדיקות מקדימות. אם הבדיקות המקדימות נכשלות, הפקודה נחסמת. כדי לבטל את החסימה, צריך לתקן את הכשלים או להשתמש בדגל --skip-preflight-check-blocking עם הפקודה.

  3. אם אתם משדרגים לגרסה 1.14.0 ואילך, נוצר קובץ kubeconfig חדש לאשכול האדמין שמחליף את הקובץ הקיים. כדי להציג את פרטי האשכול בקובץ, מריצים את הפקודה הבאה:

    kubectl config view --kubeconfig ADMIN_CLUSTER_KUBECONFIG

‫CLI של gcloud

שדרוג אשכול האדמין באמצעות ה-CLI של gcloud.

  1. מעדכנים את גרסת הפלטפורמה לגרסת היעד:

    gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
        --location=REGION \
        --required-platform-version=VERSION \
        --async
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ADMIN_CLUSTER_NAME: השם של אשכול האדמין.
    • ‫REGION: האזור ב- Google Cloud שבו מנוהל אשכול האדמין.
    • ‫VERSION: גרסת היעד שאליה משדרגים.

    הפקודה הזו מחזירה מזהה פעולה. אפשר לעקוב אחרי ההתקדמות באמצעות gcloud container vmware operations describe.

  2. אחרי שמעדכנים את גרסת הפלטפורמה, מעדכנים את גרסת אשכול האדמין:

    gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
        --location=REGION \
        --version=VERSION \
        --async
    

    בשלב הזה מסתיים השדרוג של אשכול האדמין לגרסת היעד.

שדרוג אשכול משתמש

כדי לשדרג אשכול משתמש, אתם יכולים להשתמש ב-gkectl, במסוף, ב-CLI של gcloud או ב-Terraform. כדי להחליט באיזה כלי להשתמש, קראו את המאמר בחירת כלי לשדרוג אשכולות.

המסוף

כדי לשדרג אשכול משתמשים, צריך לבצע כמה שינויים באשכול האדמין. המסוף מבצע באופן אוטומטי את הפעולות הבאות:

  • רושם את אשכול האדמין ב-GKE On-Prem API אם הוא עדיין לא רשום.

  • הורדה ופריסה של חבילת רכיבים באשכול האדמין. גרסת הרכיבים תואמת לגרסה שציינתם לשדרוג. הרכיבים האלה מאפשרים לאשכול האדמין לנהל אשכולות של משתמשים בגרסה הזו.

כדי לשדרג אשכול משתמש:

  1. נכנסים לדף Google Kubernetes Engine clusters overview במסוף.

    כניסה לאשכולות GKE

  2. בוחרים את הפרויקט Google Cloud ואז בוחרים את האשכול שרוצים לשדרג.

  3. בחלונית פרטים, לוחצים על פרטים נוספים.

  4. בקטע Cluster basics, לוחצים על Upgrade.

  5. ברשימה Choose target version, בוחרים את הגרסה שאליה רוצים לשדרג. הרשימה שנבחרה מכילה רק את גרסאות התיקונים האחרונות.

  6. לוחצים על שדרוג.

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

כדי לראות את סטטוס השדרוג, לוחצים על Show Details בכרטיסייה Cluster Details.

‫CLI של gcloud

כדי לשדרג אשכול משתמשים, צריך לבצע כמה שינויים באשכול האדמין. הפקודה gcloud container vmware clusters upgrade מבצעת באופן אוטומטי את הפעולות הבאות:

  • רושם את אשכול האדמין ב-GKE On-Prem API אם הוא עדיין לא רשום.

  • הורדה ופריסה של חבילת רכיבים באשכול האדמין. גרסת הרכיבים תואמת לגרסה שציינתם לשדרוג. הרכיבים האלה מאפשרים לאשכול האדמין לנהל אשכולות של משתמשים בגרסה הזו.

כדי לשדרג אשכול משתמש:

  1. מעדכנים את הרכיבים של Google Cloud CLI:

    gcloud components update
    
  2. מציגים רשימה של הגרסאות שאפשר לשדרג אליהן:

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    הפלט של הפקודה אמור להיראות כך:

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    

    אפשר להתעלם מההודעה שמופיעה אחרי רשימת הגרסאות. לא משנה אם הגרסה שאליה אתם משדרגים מותקנת באשכול האדמין. הפקודה upgrade מורידה ופורסת חבילה של רכיבים שתואמת לגרסה שציינתם בפקודה upgrade.

  3. משדרגים את האשכול.

    gcloud container vmware clusters upgrade USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --version=VERSION
    

    מחליפים את VERSION בגרסה של Google Distributed Cloud שרוצים לשדרג אליה. מציינים גרסה מהפלט של הפקודה הקודמת. מומלץ לשדרג לגרסה האחרונה עם התיקון.

    הפלט של הפקודה אמור להיראות כך:

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
    

    בפלט לדוגמה, המחרוזת operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 היא ה-OPERATION_ID של הפעולה שרצה לאורך זמן. כדי לבדוק את סטטוס הפעולה, מריצים את הפקודה הבאה בחלון טרמינל אחר:

    gcloud container vmware operations describe OPERATION_ID \
      --project=PROJECT_ID \
      --location=REGION
    

gkectl

הכנה לשדרוג של אשכול משתמשים

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

  1. לפני שמתחילים את ניסיון השדרוג הראשוני, צריך לבדוק אם אשכול המשתמש תקין. אבחון בעיות באשכול מריצים את gkectl diagnose cluster באשכול המשתמש ופותרים את הבעיות.

  2. צריך לבצע את השלב הזה רק אם הגרסה של TARGET_VERSION היא 1.30 או גרסה קודמת, או אם משדרגים את אשכול המשתמש לגרסה שונה מאשכול האדמין. מריצים את הפקודה gkectl prepare כדי לייבא קובצי אימג' של מערכת ההפעלה אל vSphere:

    gkectl prepare \
      --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    
  3. אם באשכול יש מאגר צמתים של Windows, מריצים את הפקודה gkectl prepare windows ומעדכנים את השדה osImage של מאגר הצמתים. הוראות מפורטות מופיעות במאמר שדרוג אשכולות משתמשים עם מאגרי Windows Node.

  4. בקובץ התצורה של אשכול המשתמש, מגדירים את gkeOnPremVersion לגרסת היעד של השדרוג.

הרצת בדיקות לפני ההפעלה

כשמשדרגים לגרסה 1.29 ואילך, אפשר להריץ את הבדיקות המקדימות לפני שמשדרגים אשכול משתמש:

gkectl upgrade cluster \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG \
    --dry-run

מחליפים את USER_CLUSTER_CONFIG בנתיב לקובץ התצורה של אשכול המשתמש.

עם הדגל --dry-run, הפקודה gkectl upgrade cluster מריצה את הבדיקות המקדימות אבל לא מתחילה את תהליך השדרוג. בגרסאות קודמות של Google Distributed Cloud פועלות בדיקות מקדימות, אבל אי אפשר להריץ אותן בנפרד מהשדרוג. הוספת הדגל --dry-run מאפשרת למצוא ולתקן את כל הבעיות שמתגלות בבדיקות המקדימות באשכול המשתמש לפני השדרוג.

מריצים את gkectl upgrade cluster

יש שתי וריאציות של הפקודה gkectl upgrade cluster:

  • אסינכרוני: (מומלץ)
    בגרסה האסינכרונית, הפקודה מתחילה את השדרוג ואז מסתיימת. לא צריך לצפות בפלט של הפקודה לאורך כל השדרוג. במקום זאת, אתם יכולים לבדוק מדי פעם את התקדמות השדרוג על ידי הפעלת gkectl list clusters ו-gkectl describe clusters. כדי להשתמש בווריאציה האסינכרונית, צריך לכלול את הדגל --async בפקודה.

    • גרסה 1.31: לא זמינה באשכולות מתקדמים.
    • גרסה 1.32 ואילך: זמינה באשכולות מתקדמים.
  • סינכרוני:
    בגרסה הסינכרונית, הפקודה gkectl upgrade cluster מפיקה הודעות סטטוס לתחנת העבודה של האדמין בזמן שהשדרוג מתבצע.

שדרוג אסינכרוני

  1. אם אתם משדרגים לגרסה חדשה יותר מ-1.16, אתם יכולים לדלג על השלב הזה.

    אם אתם משתמשים בפרטי כניסה מוכנים ובמרשם פרטי לאשכול המשתמש, ודאו שפרטי הכניסה למרשם הפרטי מוכנים לפני שאתם משדרגים את אשכול המשתמש. במאמר הגדרת פרטי כניסה מוכנים לאשכולות משתמשים מוסבר איך להכין את פרטי הכניסה לרישום הפרטי.

  2. מבצעים אבחון של האשכול כדי לוודא שהוא תקין:

    gkectl diagnose cluster \
        --kubeconfig <var>ADMIN_CLUSTER_KUBECONFIG</var>
    

    אם הפקודה מדווחת על שגיאות או אזהרות, עיינו בקטע אבחון בעיות באשכול ופתרו אותן לפני שתמשיכו.

  3. בתחנת העבודה של האדמין, מתחילים שדרוג אסינכרוני:

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG \
      --async
    

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

  4. כדי לראות את סטטוס השדרוג:

    gkectl list clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    הפלט מציג ערך לאשכול STATE. אם האשכול עדיין משתדרג, הערך של STATE הוא UPGRADING. לדוגמה:

    NAMESPACE             NAME    READY   STATE       AGE   VERSION
    my-uc-gkeonprem-mgmt  my-uc   False   UPGRADING   9h    1.36.0-gke.1
    

    הערכים האפשריים של STATE הם UPGRADING,‏ DELETING,‏ UPDATING,‏ RUNNING,‏ RECONCILING,‏ ERROR ו-UNKNOWN.

  5. כדי לקבל פרטים נוספים על התקדמות השדרוג ועל אירועים באשכול:

    gkectl describe clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --cluster USER_CLUSTER_NAME -v 5
    

    הפלט מציג את המשאב המותאם אישית OnPremUserCluster לאשכול המשתמש שצוין, שכולל את הסטטוס, התנאים והאירועים של האשכול.

    לצפייה בפלט לדוגמה
    Status:
    Cluster State:  RUNNING
    Conditions:
    Last Transition Time:    2026-08-10T21:29:07Z
    Message:                 Cluster is running
    Observed Generation:     2
    Reason:                  ClusterRunning
    Status:                  True
    Type:                    Ready
    Last Transition Time:    2026-08-10T21:12:05Z
    Message:                 Operator NodePool is ready
    Observed Generation:     2
    Reason:                  OperatorNodePoolReady
    Status:                  True
    Type:                    ControlPlaneReady
    Last Transition Time:    2026-08-10T16:25:08Z
    Message:                 Component provisioner job is completed
    Observed Generation:     2
    Reason:                  ComponentProvisionerJobCompleted
    Status:                  True
    Type:                    ComponentProvisionerUserProfileInstalled
    Last Transition Time:    2026-08-10T21:29:07Z
    Message:                 Node pools are running
    Observed Generation:     2
    Reason:                  NodePoolsRunning
    Status:                  True
    Type:                    NodePoolsReady
    Last Transition Time:    2026-08-10T21:29:56Z
    Message:
    Observed Generation:     2
    Reason:                  Reconciling
    Status:                  False
    Type:                    OperatorClusterKubeProxyCleanedUp
    Last Transition Time:    2026-08-10T16:27:48Z
    Message:
    Observed Generation:     2
    Reason:                  PreflightCheckPassed
    Status:                  True
    Type:                    OperatorClusterPreflightCheckSuccessful
    Last Transition Time:    2026-08-10T16:27:48Z
    Message:
    Observed Generation:     2
    Reason:                  ProvisioningStarted
    Status:                  True
    Type:                    OperatorClusterProvisioningStarted
    Last Transition Time:    2026-08-10T16:27:48Z
    Message:
    Observed Generation:     2
    Reason:                  RemoteTrackerSetupComplete
    Status:                  True
    Type:                    OperatorClusterRemoteTrackerSetupSuccessful
    Last Transition Time:    2026-08-10T16:27:48Z
    Message:
    Observed Generation:     2
    Reason:                  Reconciling
    Status:                  False
    Type:                    OperatorClusterStalled
    Last Transition Time:    2026-08-10T16:27:48Z
    Message:
    Observed Generation:     2
    Reason:                  NotPresent
    Status:                  False
    Type:                    OperatorClusterWaitingOnPendingClusterID
    Last Transition Time:    2026-08-10T18:23:16Z
    Message:                 Operator Cluster is ready
    Observed Generation:     2
    Reason:                  OperatorClusterReady
    Status:                  True
    Type:                    OperatorClusterReady
    Gke On Prem Version:       1.36.0-gke.527
    Last Gke On Prem Version:  1.35.300-gke.87
    Operator Cluster Status:
    Control Plane Node Pool Status:
      Anthos Bare Metal Version:  1.36.0-gke.527
      Anthos Bare Metal Versions:
        1.36.0-gke.527:  3
      Conditions:
        Last Transition Time:  2026-08-10T21:07:22Z
        Observed Generation:   11
        Reason:                PreflightCheckPassed
        Status:                True
        Type:                  PreflightCheckSuccessful
        Last Transition Time:  2026-08-10T21:12:05Z
        Observed Generation:   11
        Reason:                NodepoolReady
        Status:                True
        Type:                  Ready
        Last Transition Time:  2026-08-10T21:11:24Z
        Observed Generation:   11
        Reason:                ReconciliationCompleted
        Status:                False
        Type:                  Reconciling
      Gke Versions:
        v1.36.0-gke.2800:        3
      Last Reconciliation Time:  2026-08-10T21:28:02Z
      Maintenance Nodes:         0
      Managed Fields:
        Label Keys:
          node.kubernetes.io/control-plane
          node.kubernetes.io/master
        Node Label Keys:
          vsphere://abcdef-1:
            onprem.gke.io/failure-domain-name
            vmware.cluster.gke.io/machine-name
          vsphere://abcdef-2:
            onprem.gke.io/failure-domain-name
            vmware.cluster.gke.io/machine-name
          vsphere://abcdef-3:
            onprem.gke.io/failure-domain-name
            vmware.cluster.gke.io/machine-name
      Ready Nodes:        3
      Ready Timestamp:    2026-08-10T16:24:02Z
      Reconciling Nodes:  0
      Stalled Nodes:      0
      Unknown Nodes:      0
    Data Plane Load Balancer Status:
      Conditions:
        Last Transition Time:  2026-08-10T16:08:47Z
        Observed Generation:   1
        Reason:                ReconciliationCompleted
        Status:                False
        Type:                  Reconciling
      Node Pool Location:      load-balancer-nodepool
    External Manifests Conditions:
      Last Transition Time:  2026-08-10T16:12:25Z
      Observed Generation:   2
      Reason:                ReconciliationCompleted
      Status:                False
      Type:                  Reconciling
    Gke Connect Conditions:
      Last Transition Time:  2026-08-10T21:11:33Z
      Observed Generation:   2
      Reason:                AnthosBareMetalVersion
      Status:                True
      Type:                  1.36.0-gke.527
      Last Transition Time:  2026-08-10T21:11:33Z
      Observed Generation:   2
      Reason:                ReconciliationCompleted
      Status:                False
      Type:                  Reconciling
    Gke Connect Dependent System Service Conditions:
      Last Transition Time:  2026-08-10T16:25:26Z
      Observed Generation:   2
      Reason:                ReconciliationCompleted
      Status:                False
      Type:                  Reconciling
    Gke Hub Registration Status:
      Membership:
        Description:  description
        Name:         name
    Gke Versions:
      v1.36.0-gke.2800:  6
    Kernel Version Conditions:
      Last Transition Time:  2026-08-10T16:08:53Z
      Reason:                kernelVersionCheckPassed
      Status:                True
      Type:                  kernelVersionCheckSuccessful
    System Service Conditions:
      Last Transition Time:  2026-08-10T21:04:39Z
      Observed Generation:   2
      Reason:                ReconciliationCompleted
      Status:                False
      Type:                  Reconciling
    Events:
    Type    Reason         Age   From                            Message


    Normal StatusChanged 58m onprem-user-cluster-controller OnPremUserCluster status changed:

    • New ClusterState condition: UPGRADING Normal ControlPlaneUpgradeStarted 58m onprem-user-cluster-controller Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:43:53 +0000 UTC Normal StatusChanged 58m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:43:53 +0000 UTC Normal ControlPlaneUpgradeStarted 58m onprem-user-cluster-controller Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:43:54 +0000 UTC Normal StatusChanged 58m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:43:54 +0000 UTC Normal ControlPlaneUpgradeStarted 58m onprem-user-cluster-controller Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:44:38 +0000 UTC Normal StatusChanged 58m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:44:38 +0000 UTC Normal StatusChanged 56m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:46:33 +0000 UTC Normal StatusChanged 54m (x2 over 56m) onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePoolClaim is currently in the progress of rolling update: Condition "NodeRecreationUpdateInProgress" ready, reason: "NodeRecreationUpdateInProgress", message: "Cannot further mark old InventoryMachines for recreation due to MinReadyNodesRequired requirement. Current process: There are still old InventoryMachines: [my-uc-cp-99cc4wxzvx8ww829-2 my-uc-cp-99cc4wxzvx8ww829-1]; New ready count (0) does not match desired count (3)" Normal StatusChanged 53m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" generation 7 hasn't been observed Normal StatusChanged 53m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateOperatorNodePool, Creating or updating operator NodePool: NodePool is not ready: Condition "Ready" status "False" is not "True", reason: "Reconciling", message: "", lastTransitionTime: 2026-08-10 20:48:58 +0000 UTC Normal StatusChanged 30m (x3 over 58m) onprem-user-cluster-controller OnPremUserCluster status changed:
    • New Ready condition: True, ClusterRunning, Cluster is running Normal ControlPlaneUpgradeFinished 30m (x3 over 58m) onprem-user-cluster-controller Operator NodePool is ready Normal StatusChanged 29m (x9 over 47m) onprem-user-cluster-controller (combined from similar events): OnPremUserCluster status changed:
    • New Ready condition: False, CreateOrUpdateNodePools, Creating or updating node pools, unready node pools: [my-uc-gke-onprem-mgmt/my-uc], in deletion node pools: [] Normal NodePoolsUpgradeStarted 29m onprem-user-cluster-controller Creating or updating node pools, unready node pools: [my-uc-gke-onprem-mgmt/my-uc], in deletion node pools: [] Normal StatusChanged 13m onprem-user-cluster-controller OnPremUserCluster status changed:
    • New GKEOnPremVersion: "1.36.0-gke.527"
    • New ClusterState condition: RUNNING
    • New Ready condition: True, ClusterRunning, Cluster is running
  6. בסיום השדרוג, ב-gkectl list clusters מוצג STATE של RUNNING:

    NAMESPACE             NAME    READY   STATE     AGE     VERSION
    my-uc-gkeonprem-mgmt  my-uc   True    RUNNING   9h      1.36.0-gke.1
    

    בנוסף, כשהשדרוג מסתיים, בשדה gkectl describe clusters מופיע השדה Last GKE On Prem Version בקטע Status. לדוגמה:

    Status:
    Cluster State:  RUNNING
    Last GKE On Prem Version:  1.36.0-gke.1
    

פתרון בעיות בשדרוג אסינכרוני

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

בדרך כלל, זמן קצוב לתפוגה הוא תוצאה של מבוי סתום שנגרם על ידי PodDisruptionBudget‏ (PDB). במקרה כזה, אי אפשר לפנות Pods מצמתים ישנים, ואי אפשר לרוקן את הצמתים הישנים. אם פינוי ה-Pod נמשך יותר מ-10 דקות, אנחנו כותבים אירוע לאובייקט OnPremUserCluster. כדי לתעד את האירוע, מריצים את הפקודה gkectl describe clusters. אחר כך אפשר לשנות את ה-PDB כדי לאפשר את ניקוז הצומת. אחרי שהשדרוג יסתיים, אפשר יהיה להמשיך בתהליך.

אירוע לדוגמה:

Warning  PodEvictionTooLong  96s (x2 over 4m7s)  onprem-user-cluster-controller
Waiting too long(>10m0.00000003s) for (kube-system/coredns-856d6dbfdf-dl6nz) eviction.

בנוסף, אם השדרוג נחסם או נכשל, אתם יכולים להריץ את gkectl diagnose כדי לבדוק אם יש בעיות נפוצות באשכול. לפי התוצאה, תוכלו להחליט אם לתקן את הבעיה באופן ידני או לפנות אל Google Cloud התמיכה כדי לקבל עזרה נוספת.

שדרוג סינכרוני

הפקודה gkectl upgrade מריצה בדיקות מקדימות. אם הבדיקות המקדימות נכשלות, הפקודה נחסמת. צריך לתקן את הכשלים או להשתמש בדגל --skip-preflight-check-blocking. כדאי לדלג על הבדיקות המקדימות רק אם אתם בטוחים שאין כשלים קריטיים.

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

  1. אם אתם משדרגים לגרסה חדשה יותר מ-1.16, אתם יכולים לדלג על השלב הזה.

    אם אתם משתמשים בפרטי כניסה מוכנים ובמרשם פרטי לאשכול המשתמש, ודאו שפרטי הכניסה למרשם הפרטי מוכנים לפני שאתם משדרגים את אשכול המשתמש. במאמר הגדרת פרטי כניסה מוכנים לאשכולות משתמשים מוסבר איך להכין את פרטי הכניסה לרישום הפרטי.

  2. מבצעים אבחון של האשכול כדי לוודא שהוא תקין:

    gkectl diagnose cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG
    

    אם הפקודה מדווחת על שגיאות או אזהרות, עיינו בקטע אבחון בעיות באשכול ופתרו אותן לפני שתמשיכו.

  3. משדרגים את האשכול:

    gkectl upgrade cluster \
      --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
      --config USER_CLUSTER_CONFIG
    
  4. אם משדרגים לגרסה 1.14.0 ואילך, נוצר קובץ kubeconfig חדש לאשכול המשתמש שמחליף את הקובץ הקיים. כדי להציג את פרטי האשכול בקובץ, מריצים את הפקודה הבאה:

    kubectl config view --kubeconfig USER_CLUSTER_KUBECONFIG

המשך השדרוג

אם השדרוג של אשכול המשתמש נקטע, אפשר להמשיך אותו על ידי הפעלת אותה פקודת שדרוג עם הדגל --skip-validation-all:

gkectl upgrade cluster \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG \
    --skip-validation-all

Terraform

  1. מעדכנים את הרכיבים של Google Cloud CLI:

    gcloud components update
    
  2. אם עדיין לא עשיתם זאת, רושמים את אשכול האדמין ב-GKE On-Prem API. אחרי שהאשכול רשום ב-GKE On-Prem API, לא צריך לחזור על השלב הזה.

  3. מציגים רשימה של הגרסאות שאפשר לשדרג אליהן:

    gcloud container vmware clusters query-version-config \
      --cluster=USER_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫USER_CLUSTER_NAME: השם של אשכול המשתמש.

    • ‫PROJECT_ID: המזהה של פרויקט ה-Fleet שאשכול המשתמש הזה שייך אליו. זה הפרויקט שציינתם כשהאשכול נוצר. אם יצרתם את האשכול באמצעות gkectl, זהו מזהה הפרויקט בשדה gkeConnect.projectID בקובץ התצורה של האשכול.

    • ‫REGION: האזור Google Cloud שבו פועל GKE On-Prem API ושבו מאוחסנים המטא-נתונים שלו. בקובץ main.tf שבו השתמשתם כדי ליצור את אשכול המשתמשים, האזור נמצא בשדה location של משאב האשכול.

    הפלט של הפקודה אמור להיראות כך:

    versions:
    - version: 1.16.3-gke.45
    - version: 1.16.2-gke.28
    - version: 1.16.1-gke.45
    - version: 1.16.0-gke.669
    - version: 1.15.6-gke.25
    - version: 1.15.5-gke.41
    
    An Anthos version must be made available on the admin cluster ahead of the user
    cluster creation or upgrade. Versions annotated with isInstalled=true are
    installed on the admin cluster for the purpose of user cluster creation or
    upgrade whereas other version are released and will be available for upgrade
    once dependencies are resolved.
    
    To install the version in the admin cluster, run:
    $ gcloud container vmware admin-clusters update my-admin-cluster --required-platform-version=VERSION
    
  4. מורידים את הגרסה החדשה של הרכיבים ופורסים אותם באשכול האדמין:

    gcloud container vmware admin-clusters update ADMIN_CLUSTER_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --required-platform-version=VERSION
    

    הפקודה הזו מורידה את גרסת הרכיבים שציינתם ב---required-platform-version לאשכול האדמין, ואז פורסת את הרכיבים. הרכיבים האלה מאפשרים לאשכול האדמין לנהל אשכולות של משתמשים בגרסה הזו.

  5. בקובץ main.tf שבו השתמשתם כדי ליצור את אשכול המשתמשים, משנים את on_prem_version במשאב האשכול לגרסה החדשה.

  6. מאתחלים ויוצרים את התוכנית ב-Terraform:

    terraform init
    

    ‫Terraform מתקין את כל הספריות הנדרשות, כמו הספק Google Cloud.

  7. בודקים את ההגדרות ומשנים אותן לפי הצורך:

    terraform plan
    
  8. מפעילים את התוכנית של Terraform כדי ליצור את אשכול המשתמש:

    terraform apply
    

הסרת החבילה המלאה

אם הורדתם חבילה מלאה והפעלתם בהצלחה את gkectl prepare ושדרגתם את אשכול האדמין ואת כל אשכולות המשתמשים, כדאי למחוק את החבילה המלאה כדי לחסוך מקום בכונן בתחנת העבודה של האדמין. מריצים את הפקודה הבאה כדי למחוק את החבילה המלאה:

rm /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION-full.tgz

המשך השדרוג של אשכול אדמין

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

אזהרה: אל תתקנו את מישור הבקרה של האדמין באמצעות gkectl repair admin-master אחרי ניסיון שדרוג שנכשל. פעולה כזו תגרום לאשכול האדמין להיכנס למצב לא תקין.

איך לעשות את זה?

  1. לפני שמתחילים את ניסיון השדרוג הראשוני, צריך לבדוק אם מישור הבקרה של האדמין תקין. אבחון בעיות באשכול כמו שמוסבר בנושא הזה, מריצים את הפקודה gkectl diagnose cluster לאשכול האדמין.

  2. אם מישור הבקרה של האדמין לא תקין לפני הניסיון הראשון לשדרוג, מתקנים את מישור הבקרה של האדמין באמצעות הפקודה gkectl repair admin-master.

  3. כשמריצים מחדש את פקודת השדרוג אחרי שהשדרוג הופסק או נכשל, צריך להשתמש באותה חבילה ובאותה גרסת יעד כמו בניסיון השדרוג הקודם.

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

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

אם gkectl נסגר באופן לא צפוי במהלך שדרוג של אשכול אדמין, אשכול ה-kind לא מנוקה. לפני שמריצים מחדש את פקודת השדרוג כדי להמשיך את השדרוג, מוחקים את אשכול ה-kind:

docker stop gkectl-control-plane && docker rm gkectl-control-plane

אחרי שמוחקים את אשכול ה-kind, מריצים שוב את פקודת השדרוג.

חזרה לגרסה קודמת של תחנת עבודה של אדמין אחרי שדרוג

אתם יכולים להחזיר את תחנת הניהול לגרסה שבה השתמשתם לפני השדרוג.

במהלך השדרוג, gkeadm מתעד את הגרסה לפני השדרוג בקובץ המידע של הפלט. במהלך החזרה לגרסה קודמת, gkeadm משתמש בגרסה שמופיעה ברשימה כדי להוריד את הקובץ הישן יותר.

כדי להחזיר את תחנת הניהול לגרסה הקודמת:

gkeadm rollback admin-workstation --config=AW_CONFIG_FILE

אפשר להשמיט את --config=AW_CONFIG_FILE אם קובץ התצורה של תחנת העבודה של האדמין הוא ברירת המחדל admin-ws-config.yaml. אחרת, מחליפים את AW_CONFIG_FILE בנתיב לקובץ התצורה של תחנת העבודה של האדמין.

הפקודה להחזרה לגרסה קודמת מבצעת את השלבים הבאים:

  1. הורדה של הגרסה הקודמת של gkeadm.
  2. מגבה את ספריית הבית של תחנת העבודה הנוכחית של האדמין.
  3. יוצרת תחנת עבודה חדשה של אדמין באמצעות גרסת החזרה לאחור של gkeadm.
  4. מוחקת את תחנת העבודה המקורית של האדמין.

התקנת חבילה עם גרסה אחרת לשדרוג

אם משדרגים את תחנת העבודה, מותקנת בה חבילה עם גרסה תואמת לשדרוג האשכולות. אם רוצים גרסה אחרת, צריך לפעול לפי השלבים הבאים כדי להתקין חבילה של TARGET_VERSION, שהיא הגרסה שאליה רוצים לשדרג.

  1. כדי לבדוק את הגרסאות הנוכחיות של gkectl ושל האשכול, מריצים את הפקודה הזו. כדי לקבל מידע מפורט יותר, משתמשים בדגל --details/-d.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details
    

    הפלט מספק מידע על גרסאות האשכול.

  2. בהתאם לפלט שמתקבל, מחפשים את הבעיות הבאות ומתקנים אותן לפי הצורך.

    • אם הגרסה הנוכחית של אשכול האדמין נמוכה ביותר מגרסה משנית אחת מ-TARGET_VERSION, צריך לשדרג את כל האשכולות כך שיהיו נמוכים בגרסה משנית אחת מ-TARGET_VERSION.

    • אם גרסת gkectl נמוכה מ-1.11, ואתם רוצים לשדרג ל-1.12.x, תצטרכו לבצע כמה שדרוגים. משדרגים גרסה משנית אחת בכל פעם, עד שמגיעים ל-‎1.11.x, ואז ממשיכים לפי ההוראות בנושא הזה.

    • אם הגרסה של gkectl נמוכה מ-TARGET_VERSION, שדרגו את תחנת הניהול ל-TARGET_VERSION.

  3. אחרי שמוודאים שגרסאות ה-gkectl והאשכול מתאימות לשדרוג, מורידים את החבילה.

    בודקים אם קובץ ה-tarball של החבילה כבר קיים בתחנת עבודה של האדמין.

    stat /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz

    אם החבילה לא נמצאת בתחנת העבודה של האדמין, צריך להוריד אותה.

    gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/TARGET_VERSION/gke-onprem-vsphere-TARGET_VERSION.tgz /var/lib/gke/bundles/
    

  4. מתקינים את החבילה.

    gkectl prepare --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    מחליפים את ADMIN_CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig. אפשר להשמיט את הדגל הזה אם הקובץ נמצא בספרייה הנוכחית והשם שלו הוא kubeconfig.

  5. מציגים את רשימת הגרסאות הזמינות של האשכולות ומוודאים שגרסת היעד נכללת בגרסאות הזמינות של אשכולות המשתמשים.

    gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG --details

עכשיו אפשר ליצור אשכול משתמשים בגרסת היעד, או לשדרג אשכול משתמשים לגרסת היעד.

פתרון בעיות בתהליך השדרוג

אם נתקלתם בבעיה בתהליך השדרוג המומלץ, אתם יכולים לפעול לפי ההמלצות הבאות כדי לפתור אותה. ההצעות האלה מבוססות על ההנחה שהתחלתם עם הגדרה של גרסה 1.11.x, ואתם ממשיכים בתהליך השדרוג המומלץ.

פתרון בעיות ביצירה ובשדרוג של אשכולות

פתרון בעיות בשדרוג של אשכול משתמשים

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

  1. להמשיך להשתמש בגרסה הנוכחית בסביבת הייצור.
  2. כשהתיקון ישוחרר, בדקו אותו באשכול שלא מיועד לסביבת הייצור.
  3. כשאתם בטוחים שהכול תקין, שדרגו את כל אשכולות המשתמשים בסביבת הייצור לגרסת התיקון.
  4. משדרגים את אשכול האדמין לגרסת הפצה של התיקון.

פתרון בעיות בשדרוג של אשכול אדמין

אם נתקלתם בבעיה בשדרוג של אשכול האדמין, אתם צריכים לפנות לתמיכה של Google כדי לפתור את הבעיה באשכול האדמין.

בינתיים, בתהליך השדרוג החדש, אתם עדיין יכולים ליהנות מתכונות חדשות של אשכולות משתמשים בלי להיחסם על ידי שדרוג אשכול האדמין. כך אתם יכולים להפחית את תדירות השדרוג של אשכול האדמין אם אתם רוצים. תהליך השדרוג יכול להתבצע באופן הבא:

  1. שדרוג אשכולות של משתמשים בסביבת הייצור לגרסה 1.12.x.
  2. להשאיר את אשכול האדמין בגרסה הקודמת ולהמשיך לקבל תיקוני אבטחה.
  3. בדיקת השדרוג של אשכול האדמין מגרסה 1.11.x לגרסה 1.12.x בסביבת בדיקה, ודיווח על בעיות אם יש כאלה.
  4. אם הבעיה נפתרה על ידי גרסת תיקון 1.12.x, תוכלו לשדרג את אשכול האדמין בסביבת הייצור לגרסת התיקון הזו.

בעיות מוכרות בגרסאות האחרונות

הבעיות הידועות הבאות עשויות להשפיע על השדרוגים אם אתם משדרגים מגרסה 1.7 ואילך.

מידע נוסף: בעיות מוכרות

יכול להיות שהשדרוג של תחנת העבודה של האדמין ייכשל אם דיסק הנתונים כמעט מלא

אם משדרגים את תחנת הניהול באמצעות הפקודה gkectl upgrade admin-workstation, יכול להיות שהשדרוג ייכשל אם דיסק הנתונים כמעט מלא, כי המערכת מנסה לגבות את תחנת הניהול הנוכחית באופן מקומי בזמן השדרוג לתחנת ניהול חדשה. אם אתם לא מצליחים לפנות מספיק מקום בדיסק הנתונים, השתמשו בפקודה gkectl upgrade admin-workstation עם הדגל הנוסף --backup-to-local=false כדי למנוע יצירת גיבוי מקומי של תחנת הניהול הנוכחית.

שיבוש בעומסי עבודה עם PodDisruptionBudgets

שדרוג אשכולות עלול לגרום לשיבושים או להשבתה של עומסי עבודה שמשתמשים ב-PodDisruptionBudgets‏ (PDBs).

הצמתים לא מצליחים להשלים את תהליך השדרוג

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

מציגים את כל האובייקטים מסוג PodDisruptionBudget באשכול המשתמש שלא מאפשרים שיבושים:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
    get poddisruptionbudget --all-namespaces \
    -o jsonpath='{range .items[?(@.status.disruptionsAllowed==0)]}{.metadata.namespace}/{.metadata.name}{"\n"}{end}'

מחליפים את USER_CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של אשכול המשתמש.

כברירת מחדל, ה-PDB של kube-system/log-aggregator ו-kube-system/prometheus מופיעים בפלט עם disruptionsAllowed: 0 כשאין להם פודים תואמים ו-status.expectedPods הוא 0. אפשר להתעלם מה-PDB האלה כי הם לא חוסמים את ניקוז הצומת.

מידע נוסף על השדרוג

מידע על כללי VMware DRS שמופעלים בגרסה 1.1.0-gke.6

החל מגרסה 1.1.0-gke.6, ‏Google Distributed Cloud יוצר באופן אוטומטי כללי אנטי-אפיניות של VMware Distributed Resource Scheduler (DRS) לצומתי אשכול המשתמשים, כך שהם יתפרסו על פני לפחות שלושה מארחים פיזיים במרכז הנתונים. החל מגרסה 1.1.0-gke.6, התכונה הזו מופעלת באופן אוטומטי באשכולות חדשים ובאשכולות קיימים.

לפני השדרוג, ודאו שסביבת vSphere עומדת בתנאים הבאים:

  • ‫VMware DRS מופעל. כדי להשתמש ב-VMware DRS, צריך רישיון ל-vSphere Enterprise Plus. במאמר הפעלת VMware DRS באשכול מוסבר איך להפעיל את DRS.

  • שם המשתמש ב-vSphere שצוין בקובץ התצורה של פרטי הכניסה כולל את ההרשאה Host.Inventory.EditCluster.

  • יש לפחות שלושה מארחים פיזיים זמינים.

אם סביבת vSphere לא עומדת בתנאים שלמעלה, עדיין אפשר לשדרג, אבל כדי לשדרג אשכול משתמש מגרסה 1.3.x לגרסה 1.4.x, צריך להשבית את קבוצות האנטי-אפיניות. מידע נוסף זמין בקטע בעיות מוכרות בנתוני הגרסה של Google Distributed Cloud.

מידע על זמן השבתה במהלך שדרוגים

משאב תיאור
אשכול אדמין

כשאשכול אדמין מושבת, מישורי הבקרה של אשכולות המשתמשים ועומסי העבודה באשכולות המשתמשים ממשיכים לפעול, אלא אם הם הושפעו מהתקלה שגרמה להשבתה.

מישור הבקרה של אשכול המשתמשים

בדרך כלל, לא אמור להיות זמן השבתה משמעותי במישורי הבקרה של אשכולות המשתמשים. עם זאת, יכול להיות שחיבורים לטווח ארוך לשרת ה-API של Kubernetes יתנתקו ויהיה צורך ליצור אותם מחדש. במקרים כאלה, הגורם שמבצע את הקריאה ל-API צריך לנסות שוב עד שנוצר חיבור. במקרה הגרוע ביותר, יכול להיות זמן השבתה של עד דקה במהלך השדרוג.

צמתים של אשכולות משתמשים

אם השדרוג דורש שינוי בצומתי אשכולות של משתמשים, Google Distributed Cloud יוצר מחדש את הצמתים באופן הדרגתי ומתזמן מחדש את הפודים שפועלים בצמתים האלה. כדי למנוע השפעה על עומסי העבודה, אפשר להגדיר PodDisruptionBudgets וכללי אנטי-אפיניות מתאימים.

יצירה מחדש של קובץ מידע אם הוא חסר

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

קובץ הפלט הוא בפורמט הבא:

Admin workstation version: GKEADM_VERSION
Created using gkeadm version: GKEADM_VERSION
VM name: ADMIN_WS_NAME
IP: ADMIN_WS_IP
SSH key used: FULL_PATH_TO_ADMIN_WS_SSH_KEY
To access your admin workstation:
ssh -i FULL-PATH-TO-ADMIN-WS-SSH-KEY ubuntu@ADMIN-WS-IP

הנה דוגמה לקובץ פלט של מידע:

Admin workstation version: v1.10.3-gke.49
Created using gkeadm version: v1.10.3-gke.49
VM name: admin-ws-janedoe
IP: 172.16.91.21
SSH key used: /home/janedoe/.ssh/gke-admin-workstation
Upgraded from (rollback version): v1.10.0-gke.194
To access your admin workstation:
ssh -i /home/janedoe/.ssh/gke-admin-workstation ubuntu@172.16.91.21

יוצרים את הקובץ בכלי עריכה ומחליפים את הפרמטרים המתאימים. שומרים את הקובץ עם שם קובץ שזהה לשם ה-VM בספרייה שממנה מופעל gkeadm. לדוגמה, אם שם ה-VM הוא admin-ws-janedoe, שומרים את הקובץ בשם admin-ws-janedoe.

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