אתם יכולים לאבחן ולפתור בעיות שמתרחשות במהלך עדכוני אשכולות ב-Google Distributed Cloud, כמו זמן קצוב לתפוגה של פעולות, שינויים בהגדרות שנדחו או שמתעלמים מהם, וכשלים בבדיקות מקדימות. למידע נוסף על ההגדרות שאפשר לעדכן, ראו מה אפשר ומה אי אפשר לעדכן באשכולות.
הזמן הקצוב לעדכון
זמן הקצוב לתפוגה של העדכון מחושב באופן דינמי על סמך המשאבים שצריך לעדכן. עם זאת, החישוב לא תמיד מדויק. אם הזמן הקצוב לתפוגה של העדכון חולף, מופיעות שגיאות כמו אלה:
באשכול המשתמשים:
Failed to update the cluster:...timed out waiting for the condition...באשכול האדמין:
Failed to update the admin cluster:...timed out waiting for the condition...
אפשר להתעלם משגיאת זמן קצוב לתפוגה מהסוג הזה, ולנסות שוב את פקודת העדכון. אם מנסים שוב להריץ את הפקודה והזמן הקצוב לתפוגה נגמר שוב עם אותה הודעת שגיאה, פנו ל-Cloud Customer Care.
העדכון מכיל כמה שינויים
הפקודות 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.
- בדוגמה הקודמת, אם לא התכוונתם להשבית את
- אם השינוי מכוון, השגיאה מציינת שהשינוי לא נתמך. מבצעים אחת מהפעולות הבאות:
- אם רלוונטי, יוצרים מחדש את האשכול.
- פנייה ל-Cloud Customer Care.
קובץ האימג' של מערכת ההפעלה לא קיים
יכול להיות שהפקודות 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.באשכול האדמין:
- 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.
במאמר קבלת תמיכה תוכלו לקרוא מידע נוסף על מקורות המידע לתמיכה, כולל: