במאמר הזה מוסבר על בדיקות מקדימות שמתבצעות כשיוצרים או משדרגים אשכול בתוכנת Google Distributed Cloud ל-VMware בלבד.
בדיקת הכללים של חומת האש
בגרסה 1.29 ואילך, בדיקות מקדימות בצד השרת מופעלות כברירת מחדל כשיוצרים, מעדכנים ומשדרגים אשכולות. בדיקות מקדימות בצד השרת דורשות כללים נוספים של חומת האש. במאמר כללי חומת אש לאשכולות אדמין, חפשו את "בדיקות מקדימות" וודאו שכל כללי חומת האש הנדרשים מוגדרים.
מריץ את הפקודה gkectl check-config
אם אתם מתכננים ליצור אשכולות באמצעות gkectl, אתם צריכים להריץ את gkectl create-config כדי ליצור קובץ תצורה. קובץ התצורה מפעיל את ההתקנה: אתם מספקים מידע על סביבת vSphere, על הרשת ועל מאזן העומסים, ועל האופן שבו אתם רוצים שהאשכולות ייראו. אפשר ליצור קובץ תצורה לפני או אחרי שיוצרים תחנת עבודה של אדמין. כדי לעבור בדיקות מסוימות, צריך להריץ אותן מתחנת העבודה של האדמין.
אחרי שמשנים את הקובץ בהתאם לצרכים של הסביבה והאשכולות, משתמשים בקובץ כדי ליצור את האשכולות בסביבה המקומית.
לפני שיוצרים אשכולות באמצעות gkectl, מריצים את gkectl check-config כדי לאמת את קובץ התצורה באמצעות כמה בדיקות קדם הפעלה.
אם הפקודה מחזירה הודעות FAILURE, צריך לתקן את הבעיות ולאמת את הקובץ שוב. אם אימות של תכונה מסוימת מחזיר הודעות WARNING, צריך לתקן את הבעיות הבסיסיות לפני שאפשר להשתמש בתכונה הזו.
מצבי בדיקה לפני ההפעלה ודילוג על אימותים
ל-gkectl check-config יש מצב ברירת מחדל ומצב מהיר:
במצב ברירת המחדל, הפקודה מאמתת באופן מקיף כל שדה. בנוסף, במצב ברירת המחדל נוצרות מכונות וירטואליות (VM) זמניות של vSphere כחלק מהאימותים, מה שיכול לקחת יותר זמן.
במצב מהיר, הפקודה מדלגת על בדיקות שיוצרות מכונות וירטואליות לבדיקה ומריצה רק את הבדיקות המהירות. כדי להפעיל את המצב המהיר, מעבירים את הדגל
--fast.
אפשר לדלג על אימותים ספציפיים על ידי העברת דגלים אחרים, שמתוארים ב-gkectl check-config --help.
תנועה בין תחנת העבודה של האדמין לבין המכונות הווירטואליות לבדיקה
במצב ברירת המחדל, הבדיקה המקדימה יוצרת מכונות וירטואליות לבדיקה של האשכול. כל מכונה וירטואלית לבדיקה מריצה שרת HTTP שמאזין ליציאה 443 וליציאות הצומת שציינתם בקובץ התצורה.
למכונות הווירטואליות לבדיקה מוקצות כמה כתובות IP. אם בקובץ התצורה מצוין שצומתי האשכול יקבלו את כתובות ה-IP שלהם משרת DHCP, הבדיקה המקדימה תשתמש בשרת DHCP כדי להקצות כתובות IP למכונות הווירטואליות לבדיקה. אם בקובץ התצורה מצוין שלצמתים באשכול יוקצו כתובות IP סטטיות, הבדיקה לפני ההתקנה תקצה למכונות הווירטואליות לבדיקה את כתובות ה-IP הסטטיות שציינתם בקובצי בלוק ה-IP.
בדיקת ההכנה, שפועלת בתחנת העבודה של האדמין, שולחת בקשות HTTP למכונות הווירטואליות לבדיקה באמצעות כתובות ה-IP השונות שהוקצו למכונות הווירטואליות. הבקשות נשלחות ליציאה 443 וליציאות הצומת שציינתם בקובץ התצורה.
מתי כדאי להריץ בדיקות לפני ההשקה?
מומלץ להריץ בדיקות מקדימות בשלב מוקדם ולפני שמנסים ליצור אשכולות. כדאי להריץ בדיקות קדם-הפעלה בשלב מוקדם כדי לוודא שהגדרתם נכון את סביבת vSphere ואת הרשת.
אם אתם משתמשים בגרסה 1.2.0-gke.6, מריצים את gkectl check-config פעמיים:
מריצים את
gkectl check-config --fast.מריצים את
gkectl prepare.מריצים שוב את הפקודה
gkectl check-configבלי הדגל--fast.
הסיבה להפעלה הכפולה היא ש-gkectl prepare מעלה את תבנית ה-VM של קובץ האימג' של מערכת ההפעלה של צומת האשכול לסביבת vSphere. תבנית ה-VM הזו צריכה להיות מוכנה לפני שמריצים את כל קבוצת האימותים.
בגרסה 1.2.1 ואילך, הפקודה check-config עצמה מעלה את תבנית ה-VM, כך שאפשר להריץ את כל קבוצת האימותים לפני שמריצים את gkectl
prepare:
מריצים את הפקודה
gkectl check-configבלי הדגל--fast.מריצים את
gkectl prepare.
הבדיקות המקדימות מאמתות את הערכים שסיפקתם לקובץ. לא צריך למלא את כל השדות בקובץ התצורה כדי להריץ בדיקות מקדימות על הקובץ, אלא אפשר לאמת את הקובץ באופן איטרטיבי תוך כדי אכלוס השדות שלו. לדוגמה, אם אתם רוצים לאמת רק את ההגדרות של vCenter, אתם יכולים למלא רק את השדות של vcenter ולהריץ בדיקות רק עליהם.
חשוב לזכור שלא ניתן לשנות את ההגדרות אחרי שיוצרים את האשכולות. הרצת בדיקות קדם-הפעלה עוזרת לכם לגלות ולפתור בעיות בהגדרות האישיות לפני שאתם יוצרים את האשכולות.
שמירת המכונה הווירטואלית לבדיקה לצורך ניפוי באגים
החל מגרסה 1.2.1, לפקודה gkectl check-config יש דגל --cleanup.
כש-gkectl check-config מבצע קבוצה מלאה של אימותים, הוא יוצר מכונה וירטואלית לבדיקה ומפתח SSH משויך. אם רוצים לשמור את ה-VM לבדיקה ואת מפתח ה-SSH למטרות ניפוי באגים, מגדירים את --cleanup כ-false.
ערך ברירת המחדל של --cleanup הוא true.
רשימת בדיקות לפני ההפעלה
בדיקות קדם ההפעלה מאמתות כל שדה בקובץ התצורה. אלה הבדיקות הנוכחיות:
| קטגוריה | תיאור | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| קובץ תצורה | בדרך כלל, המערכת בודקת שלכל שדה ומפרט יש את הפורמט והערכים הצפויים. דילוג באמצעות הדגל דילוג על אימות השדה |
||||||||||||||||
| אינטרנט | מאמת את הגישה לאינטרנט לדומיינים הנדרשים. אימות הגדרת שרת ה-proxy בהתאם למקום שבו מריצים את gkectl. דילוג באמצעות הדגל |
||||||||||||||||
| קובץ אימג' של מערכת ההפעלה | אימות שקובצי האימג' של מערכת ההפעלה קיימים. דילוג באמצעות הדגל |
||||||||||||||||
| גרסת מערכת ההפעלה Windows | מאמת את הגרסה של מערכת ההפעלה Windows. אימות שהגרסה של Windows נתמכת כשיוצרים תחנות עבודה של אדמינים באמצעות כלי שורת הפקודה |
||||||||||||||||
| גרסת האשכול | מוודא שגרסת אשכול האדמין, גרסת אשכול המשתמש וגרסת דילוג באמצעות הדגל |
||||||||||||||||
| תקינות האשכול | בודק אם אשכול האדמין או אשכול המשתמש תקין לפני השדרוג:
דילוג באמצעות הדגל |
||||||||||||||||
| תעבורת נתונים נכנסת (Ingress) | בודק אם לאשכול המשתמש יש אובייקט Istio Gateway לפני השדרוג. | ||||||||||||||||
| כתובת IP שמורה | בודק שיש מספיק כתובות IP זמינות ליצירה ולשדרוג. דילוג באמצעות הדגל |
||||||||||||||||
| Google Cloud |
--skip-validation-gcp.
| ||||||||||||||||
גישה אל gcr.io/gke-on-prem-release |
אימות הגישה למאגר קובצי האימג' של הקונטיינר שמתארח ב-Artifact Registry.
דילוג על ידי הדגל |
||||||||||||||||
| מרשם Docker |
privateregistryconfigאם מוגדר, מאמת את הגישה למרשם Docker.
דילוג באמצעות הדגל |
||||||||||||||||
| vCenter | בודק שכל השדות של vcenter קיימים, וגם בודק את הדברים הבאים:
דילוג באמצעות הדגל |
||||||||||||||||
| אחסון |
| ||||||||||||||||
| עומס עבודה של CSI |
אימות שהאשכול יכול להריץ בהצלחה עומס עבודה שמשתמש ב-PersistentVolume שהוקצה באופן דינמי ונוצר באמצעות מנהל ההתקן של vSphere CSI. הבדיקה הזו פועלת במהלך השדרוג ורק אם יש נפחי vSphere בעץ ואין נפחי vSphere CSI. הבדיקה הזו:
|
||||||||||||||||
| מארחים לקבוצות עם זיקה הפוכה | בודק שמספר המארחים הפיזיים של vCenter הוא לפחות שלושה אם
כדי להשבית את דילוג באמצעות הדגל |
||||||||||||||||
| מאזן עומסים | אימות ההגדרות של איזון העומסים:
--skip-validation-load-balancer.
|
||||||||||||||||
| Networking | בודק אם טווחי ה-CIDR, כתובות ה-VIP וכתובות ה-IP הסטטיות (אם הוגדרו) זמינים. בודק שכתובות ה-IP לא חופפות. דילוג באמצעות הדגל |
||||||||||||||||
| DNS | מאמת ששרת ה-DNS שצוין זמין. דילוג באמצעות הדגל |
||||||||||||||||
| NTP | בודק אם שרת ה-Network Time Protocol (NTP) שצוין זמין. דילוג באמצעות הדגל |
||||||||||||||||
| אח"מים | שליחת פינגים לכתובות ה-VIP שצוינו. הבדיקה הזו מסתיימת בהצלחה אם הפינג נכשל, מה שמצביע על כך שה-VIP הצפוי עדיין לא תפוס. דילוג באמצעות הדגל |
||||||||||||||||
| כתובות IP של צמתים | שליחת פינג לכתובות ה-IP של הצמתים שצוינו. הבדיקה הזו מצליחה אם הפינג נכשל, מה שמציין שכתובת ה-IP הצפויה של הצומת עדיין לא תפוסה. דילוג באמצעות הדגל |
||||||||||||||||
תוצאות של בדיקות טרום-הרצה
אלה התוצאות האפשריות של בדיקות מקדימות:
- בוצע בהצלחה
- השדה והערך שלו עברו את הבדיקה.
- שגיאה
- השדה ו/או הערך שלו לא עברו את הבדיקה. אם הבדיקה מחזירה הודעת
FAILURE, צריך לתקן את הבעיות ולאמת את הקובץ שוב. - דילוג
הבדיקה לא בוצעה, כנראה כי היא לא רלוונטית להגדרות שלכם. לדוגמה, אם אתם משתמשים בשרת DHCP, המערכת מדלגת על בדיקות של DNS וכתובות IP של צמתים, שרלוונטיות רק להגדרת IP סטטית.
אם מעבירים דגל שמדלג על אימות, הבדיקה שדילגתם עליה לא מחזירה את התוצאה SKIPPED. במקום זאת, האימות לא מופעל ולא מופיע בכלל בפלט הפקודה.
- לא ידוע
הדילוג החזיר קוד שאינו אפס. אפשר להתייחס לתוצאות UNKNOWN כבדיקות שנכשלו. הסטטוס UNKNOWN בדרך כלל מציין שהבדיקה נכשלה בהרצה של חבילת מערכת כלשהי, כמו כשל בהרצה של nslookup או כשל בהרצה של gcloud.
בקרוב
בגרסה עתידית יתווספו הבדיקות המקדימות הבאות:
- שרת NTP
מתבצעות בדיקות לפני ההפעלה
כדי להריץ בדיקות מקדימות, מריצים את הפקודה הבאה:
gkectl check-config --config [CONFIG]
כאשר [CONFIG] הוא הנתיב לקובץ התצורה
פועל במצב מהיר
אם אתם מעדיפים, אתם יכולים להריץ בדיקות טרום-טיסה ב "מצב מהיר", שבו המערכת מדלגת על האימותים שיוצרים מכונות וירטואליות זמניות לבדיקה, כמו אימותים של כתובות IP של צמתים וכתובות VIP של איזון עומסים. כדי לעשות את זה, מעבירים את --fast:
gkectl check-config --config [CONFIG] --fast
דילוג על אימותים ספציפיים
אתם יכולים להעביר דגלים כדי לדלג באופן פרטני על אימותים ספציפיים, כמו DNS, שרת proxy ורשת. כל דגל דילוג מתחיל ב---skip-[VALIDATION].
כדי לראות את דגלי הדילוג הזמינים, מריצים את הפקודה הבאה:
gkectl check-config --help
לדוגמה, כדי לדלג על האימותים של מאזן העומסים:
gkectl check-config --config my-config.yaml --skip-validation-load-balancer
בדיקות קדם ההפעלה בתהליך ביטול
אם התחלתם להריץ בדיקות מקדימות ואתם רוצים לבטל אותן, לחצו פעמיים על CTRL + C. אם בדיקה מקדימה יצרה מכונה וירטואלית לבדיקה, הביטול אמור גם לנקות את המכונה הווירטואלית באופן אוטומטי.
ניקוי של מכונה וירטואלית לבדיקה
אם נשארה מכונה וירטואלית לבדיקה אחרי שהבדיקות המקדימות הסתיימו, אתם יכולים למחוק אותה מ-vCenter. שם של מכונה וירטואלית לבדיקה נראה כך:
check-config-[dhcp|static]-[random number]
כדי למחוק את ה-VM:
לוחצים לחיצה ימנית על ה-VM ואז על Power > Power Off.
אחרי שהמכונה הווירטואלית נכבית, לוחצים עליה שוב לחיצה ימנית ולוחצים על Delete from Disk.
דוגמה
הנה דוגמה לפלט של הפקודה. בדוגמה הזו, ההגדרה שעוברת אימות משתמשת במצב משולב של איזון עומסים ובכתובות IP סטטיות בלי מאגר Docker חיצוני:
- Validation Category: Config Check
- [SUCCESS] Config
- Validation Category: Internet Access
- [SUCCESS] Internet access to required domains
- Validation Category: GCP
- [SUCCESS] GCP Service
- [SUCCESS] GCP Service Account
- Validation Category: Docker Registry
- [SUCCESS] gcr.io/gke-on-prem-release access
- Validation Category: vCenter
- [SUCCESS] Credentials
- [SUCCESS] Version
- [SUCCESS] Datacenter
- [SUCCESS] Datastore
- [SUCCESS] Data Disk
- [SUCCESS] Resource Pool
- [SUCCESS] Network
- [SUCCESS] VSphere CSI Driver
- Validation Category: F5 BIG-IP
- [SUCCESS] Admin Cluster F5 (credentials, partition and user role)
- [SUCCESS] User Cluster F5 (credentials, partition and user role)
- Validation Category: Network Configuration
- [SUCCESS] CIDR, VIP and static IP (availability and overlapping)
- Validation Category: DNS
- [SUCCESS] DNS (availability)
- Validation Category: VIPs
- [SUCCESS] ping (availability)
- Validation Category: Node IPs
- [SUCCESS] ping (availability)
Now running slow validation checks. ...
Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with admin cluster configuration... DONE
Waiting to get IP addresses from test VMs... DONE
Waiting for test VMs to become ready... DONE
Reusing VM template "gke-on-prem-osimage-xxx" that already exists in vSphere.
Creating test VMs with user cluster configuration... DONE
Waiting to get IP addresses from test VMs... DONE
Waiting for test VMs to become ready... DONE
- Validation Category: F5 BIG-IP
- [SUCCESS] Admin Cluster VIP and NodeIP
- [SUCCESS] Admin Cluster F5 Access
- [SUCCESS] User Cluster VIP and NodeIP
- [SUCCESS] User Cluster F5 Access
- Validation Category: Internet Access
- [SUCCESS] Internet access to required domains
- Validation Category: vCenter on test VMs
- [SUCCESS] Test VM: VCenter Access and Permission
- Validation Category: DNS on test VMs
- [SUCCESS] Test VM: DNS Availability
- Validation Category: TOD on test VMs
- [SUCCESS] Test VM: TOD Availability
- Validation Category: Docker Registry
- [SUCCESS] gcr.io/gke-on-prem-release access
Deleting test VMs with admin cluster configuration... DONE
Deleting test VMs with user cluster configuration... DONE
בעיות מוכרות
בגרסה 1.3.0-gke.16:
אם שני התנאים הבאים מתקיימים, צריך להריץ בדיקות אימות מהירות,
gkectl check-config --fast, לבדיקות המקדימות:הגדרתם את Google Distributed Cloud לשימוש בשרת proxy.
התקנתם את אחת מהחבילות הבאות:
- את החבילה
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgzמהדף "הורדות". - את החבילה
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16.tgzמתחנת העבודה של האדמין.
- את החבילה
אפשר להריץ את כל קבוצת האימותים רק אם התקנתם את החבילה המלאה. לדוגמה:
/var/lib/gke/bundles/gke-onprem-vsphere-1.3.0-gke.16-full.tgzלגרסה 1.2.0-gke.6:
אם אתם משתמשים במאגרי משאבים בתצוגת עץ או במאגר המשאבים שמוגדר כברירת מחדל,
gkectl check-configנכשל כשאתם מנסים לבצע קבוצה מלאה של אימותים. עם זאת, אפשר לבצע קבוצה קטנה יותר של אימותים על ידי העברת הדגל--fast.gkectl check-config --config [CONFIG] --fast