פתרון בעיות בהגדרות
בקטע הזה מוסבר על בעיות נפוצות ב-Cloud Service Mesh ואיך לפתור אותן. לקבלת עזרה נוספת, אפשר לעיין במאמר בנושא קבלת תמיכה.
בדיקת MembershipState
בכל שלב אפשר לבדוק את הסטטוס העדכני ביותר של הרשת על ידי הרצת הפקודה הבאה:
gcloud container fleet mesh describe
הפלט אמור להיראות כך:
...
membershipSpecs:
projects/project_id/locations/global/memberships/cluster:
mesh:
management: MANAGEMENT_AUTOMATIC
membershipStates:
projects/project_id/locations/global/memberships/cluster:
servicemesh:
...
conditions:
- code: CONFIG_VALIDATION_WARNING
documentationLink: https://cloud.google.com/...
details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
severity: WARNING
...
קודי שגיאה של MembershipState
אם Cloud Service Mesh מדווח על תנאים ל-MembershipState של אשכול, יכול להיות שהגדרות Mesh (כמו Istio Custom Resources) לא הוחלו. בתיאורים הבאים של קודי השגיאה מוסבר איך לפתור אותן.
| קוד שגיאה | הסיבה | רזולוציה |
|---|---|---|
CONFIG_APPLY_INTERNAL_ERROR |
לא ניתן להחיל הגדרה אחת או יותר בגלל שגיאה פנימית. | יש לפנות אל תמיכת הלקוחות. |
QUOTA_EXCEEDED_* |
לא הצלחנו להחיל הגדרה אחת או יותר כי המשאבים הגיעו למגבלת מכסה. | במאמר מכסות אפשר לקרוא מידע על המכסות הספציפיות ואיך להגדיל אותן. |
CONFIG_VALIDATION_ERROR |
לא הצלחנו להחיל הגדרה אחת או יותר בגלל הגדרה לא תקינה. | שגיאות ספציפיות נכתבות בקובצי ההגדרות שגרמו להן. מידע נוסף על אופן האבחון של השגיאות האלה מופיע בקטע שגיאות באימות ההגדרה. |
CONFIG_VALIDATION_WARNING |
זיהינו בעיות פוטנציאליות בהגדרות של אחד או יותר מהמכשירים. יכול להיות שההגדרות האלה לא יחולו, ואם הן יחולו, יכול להיות שתהיה התנהגות לא צפויה. | מידע נוסף על אופן האבחון של השגיאות האלה מופיע בקטע שגיאות באימות ההגדרה. |
שגיאות באימות ההגדרה
הקודים CONFIG_VALIDATION_WARNING ו- CONFIG_VALIDATION_ERROR מציינים שנמצאו בעיות בהגדרות של רשת Mesh (משאבים מותאמים אישית של Istio או Kubernetes), ויכול להיות שקבוצת משנה של ההגדרות לא הוחלה בצורה תקינה.
פרטי שגיאה רבים שקשורים למשאב מסוים נכתבים למשאב הרלוונטי. אפשר להשתמש בפקודה הבאה כדי לאתר את ההגדרות הלא תקינות ולראות את הודעות השגיאה הספציפיות. (הערה: אלה מיועדים במיוחד למשאבי Istio, ויכול להיות שלא כל שגיאות האימות יוצגו כאן).
for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
do kubectl get $resource --all-namespaces --output=json | \
jq '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done
הפלט אמור להיראות כך:
{
"name": "demo-envoy-filter",
"namespace": "default",
"kind": "EnvoyFilter",
"conditions": [
{
"lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
"message": "This API is not supported",
"reason": "Invalid",
"status": "False",
"type": "Accepted"
}
]
}