פתרון בעיות בפריסות של רשת שירותים ב-GKE ב-Cloud Service Mesh
במדריך הזה מוסבר איך לפתור בעיות שקשורות לפריסות של רשתות שירותים (service mesh) של Gateway API.
מידע בשדה status
לכל המשאבים של Gateway API יש שדה status שמשקף את הסטטוס של המשאבים מנקודת המבט של בקר הגישה. בנוסף לשדה status, האפליקציה של הבקר מוסיפה אירועים למשאבי Gateway API כדי לספק מידע על הפעולות שלה במשאבים האלה.
לדוגמה, אפשר להשתמש בפקודות הבאות כדי לבדוק את הסטטוס והאירועים של TDMesh:
kubectl describe tdmesh td-mesh
הפלט אמור להיראות כך:
...
Status:
Conditions:
Last Transition Time: 1970-01-01T00:00:00Z
Message: Waiting for controller
Reason: NotReconciled
Status: False
Type: Scheduled
Events:
...
הסטטוס הקודם מציין שהבקר לא התחיל בתהליך ההתאמה של הרשת המסוימת הזו. אם הסטטוס הזה נמשך יותר מ-5 דקות בלי שנוספו אירועים, כדאי לקרוא את הקטע הבא, נראה שהבקר לא מבצע התאמה של משאב TDMesh, כדי לפתור את הבעיה.
אפשר להשתמש בשיטה דומה כדי לנפות באגים בבעיות שקשורות למשאבים אחרים, כמו HTTPRoute, TCPRoute ומשאבי ניתוב אחרים.
בדרך כלל, הסטטוסים והאירועים מצביעים על הבעיה הבסיסית.
נראה שהבקר לא מבצע התאמה של משאב TDMesh
כדי לאבחן את הבעיה, צריך לוודא שקיים gke-td GatewayClass:
kubectl get gatewayclasses
הפלט צריך לכלול קובץ GatewayClass בשם gke-td.
NAME CONTROLLER gke-td networking.gke.io/gateway
אם לא מוחזר GatewayClass עם השם הזה, צריך לפעול לפי ההוראות שבקטע התקנת הגדרות נדרשות של משאבים בהתאמה אישית כדי לוודא שכל ה-CRD הנדרשים מותקנים באשכול ההגדרות, ואז להפעיל מחדש את תכונת ה-Hub עבור רשת שירותים של Cloud Service Mesh Google Kubernetes Engine באמצעות הפקודות הבאות:
השבתת התכונה:
gcloud container hub ingress disable
הפעלה מחדש של התכונה:
gcloud container hub ingress enable \ --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1