פתרון בעיות בעדכונים של Google Distributed Cloud

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

הזמן הקצוב לתפוגת העדכון

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

  • באשכול המשתמשים:

    Failed to update the cluster:...timed out waiting for the condition...
    
  • ב-admin cluster:

    Failed to update the admin cluster:...timed out waiting for the condition...
    

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

העדכון מכיל שינויים רבים

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

Update summary for cluster X:
    antiAffinityGroups: enabled to be set to true from false          &config.AAGSpec{
        -   Enabled: false,
        +   Enabled: true,
          }
    user master cpu to be set to 5 from 4          config.NodePoolProps{
            Role:        "master",
            MachineType: "standard-master",
        -   CPUs:        4,
        +   CPUs:        5,
            MemoryMB:    8192,
            Replicas:    3,
            ... // 2 identical fields
            Labels:         nil,
            NodeTaints:     nil,
        -   Vsphere:        nil,
        &config.NodePoolVsphereSpec{Datastore: "lifecycle-workloads1-datastore1"},
        +   Vsphere:        nil,
            BootDiskSizeGB: nil,
            OSImageType:    "",
            ... // 5 identical fields
          }

Exit with error:
Failed to update the cluster: the update contains multiple changes. Please
update only one feature at a time

יכולות להיות לכך כמה סיבות, כולל:

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

אם נתקלתם בהתנהגות הזו, כדאי לבדוק את ההבדלים בהודעת השגיאה ולעדכן את ההגדרות הנדרשות אחת אחת באמצעות כמה פקודות gkectl update. כדי לזהות שינויים, אפשר להשתמש ב-gkectl get-config כדי ליצור קובצי תצורה מאשכול ולראות את המצב והתצורה הקיימים.

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

הפקודות gkectl update cluster ו-gkectl update admin מתעלמות משינויים שלא נתמכים, ומציגות הודעות שגיאה שדומות לדוגמאות הבאות:

detected unsupported changes: (-current +desired)
    ...
-   AdvancedNetworking:       &true,
+   AdvancedNetworking:       &false,
    ...
, which will be ignored

אם נתקלתם בהתנהגות הזו, כדאי לעיין בהבדלים בהודעת השגיאה ולבצע את הפעולות הבאות:

  • אם השינוי לא מכוון, עורכים את קובץ ה-YAML של התצורה ומעדכנים רק את השינויים הנכונים והמכוונים.
    • בדוגמה הקודמת, אם לא התכוונתם להשבית את AdvancedNetworking, צריך להגדיר את advancedNetworking: true בקובץ ה-YAML של התצורה.
  • אם השינוי מכוון, השגיאה מציינת שהשינוי לא נתמך. מבצעים אחת מהפעולות הבאות:

קובץ האימג' של מערכת ההפעלה לא קיים

יכול להיות שהפקודות gkectl update cluster ו-gkectl update admin ייכשלו עם שגיאות בבדיקת קדם-הפעלה OS Images, בדומה לדוגמאות הבאות:

  • באשכול המשתמשים:

    - Validation Category: OS Images
        - [FAILURE] User cluster OS images exist: os images  [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    
  • ב-admin cluster:

    - Validation Category: OS Images
        - [FAILURE] Admin cluster OS images exist: os images [xxxx] don't exist,
        please run `gkectl prepare` to upload os images.
    

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

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

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

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

כשמוסיפים מאגרי צמתים חדשים, יכול להיות שהפקודה gkectl update cluster תיכשל עם שגיאות בבדיקה המקדימה VSphere Datastore FreeSpace, כמו בדוגמה הבאה:

  - [FAILURE] VSphere Datastore FreeSpace: vCenter datastore: xxxx insufficient
  FreeSpace, requires at least xxx  GB

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

  • לפנות מקום במאגר הנתונים.
  • הגדרת מאגר נתונים אחר של nodePools[].vsphere.datastore למאגר הצמתים.

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

לקבלת עזרה נוספת, אפשר לפנות אל Cloud Customer Care.

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