הסבר על תנאים של מצב תכונה
הערה: שירותים קנוניים נתמכים באופן אוטומטי ב-Cloud Service Mesh מגרסה 1.6.8 ואילך.
בדף הזה מוסבר איך לפרש את התנאים שמדווחים באשכול או בצי של Cloud Service Mesh ולפעול בהתאם.
כדי לבדוק את התנאים, מריצים את הפקודה הבאה:
gcloud container fleet mesh describe --project FLEET_PROJECT
הפלט עשוי לכלול את conditions ב-membershipStates עבור אשכול, למשל:
...
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: <CONDITION_CODE>
details: ...
documentationLink: ....
severity: ...
תיאור מפורט יותר של הערכים של code מופיע בדף הזה.
NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
יכול להיות שקוד השגיאה NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED יופיע בשדה Conditions של המינוי:
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
details: One or more node pools have workload identity federation disabled.
documentationLink: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
severity: ERROR
controlPlaneManagement:
details:
- code: REVISION_FAILED_PRECONDITION
details: Required in-cluster components are not ready. This will be retried
within 15 minutes.
implementation: TRAFFIC_DIRECTOR
state: FAILED_PRECONDITION
השגיאה הזו מוצגת אם התכונה איחוד זהויות של עומסי עבודה לא מופעלת בכל מאגרי הצמתים באשכול GKE, כי היא נדרשת להתקנה של Cloud Service Mesh.
כדי לפתור את הבעיה, צריך לפעול לפי ההוראות במאמר איך מפעילים איחוד שירותי אימות זהויות של עומסי עבודה בכל מאגרי הצמתים. שימו לב: יכול להיות שההפעלה תשתנה בהתאם למקרה הספציפי של האשכול.
אחרי ההפעלה, הודעת השגיאה אמורה להיעלם אוטומטית והאשכול אמור לחזור למצב ACTIVE. אם הבעיה נמשכת ואתם זקוקים לעזרה נוספת, אפשר לעיין במאמר בנושא קבלת תמיכה.
MESH_IAM_PERMISSION_DENIED
השגיאה הזו מציינת שלחשבון השירות אין מספיק הרשאות כדי לגשת לפרויקט הצי. כדי לפתור את הבעיה, פועלים לפי השלבים הבאים:
בודקים אם לחשבון השירות הוקצה התפקיד
Anthos Service Mesh Service Agent. לפרטים על אימות הרשאת IAM והוספה שלה, אפשר לעבור אל דיווח על עדכונים כשגיאה לא תקינה ולבצע את אותם השלבים שמופיעים שם.אם האישור אומת אבל הבעיה נמשכת, אפשר לפנות לתמיכה של Google לקבלת עזרה נוספת.
MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED
השגיאה הזו מציינת לחשבון השירות של פרויקט הצי אין מספיק הרשאות כדי לגשת לפרויקט אחר (פרויקט האשכול או פרויקט הרשת).
ב-VPC משותף, צריך לוודא שחשבון השירות Anthos Service Mesh Service Agent קיבל את התפקיד בכל הפרויקטים של צי הרכבים בפרויקט רשת ה-VPC המשותפת.
בתרחישים של פרויקט GKE Fleet ופרויקט אשכול, חשוב להקצות לחשבון השירות של פרויקט ה-Fleet את התפקיד Anthos Service Mesh Service Agent בפרויקט האשכול.
פקודה לדוגמה לפתרון בעיות:
מוודאים שלחשבון השירות של פרויקט הרשת או פרויקט האשכול הוקצה התפקיד
Anthos Service Mesh Service Agentלחשבון השירות של פרויקט הצי. אם לא, מריצים את הפקודה:gcloud projects add-iam-policy-binding NETWORK_OR_CLUSTER_PROJECT_ID \ --member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \ --role roles/anthosservicemesh.serviceAgentבנוסף, צריך לוודא שאין לכם אוטומציה שתסיר את הקישור הזה.
אם האישור אומת אבל הבעיה נמשכת, אפשר לפנות לתמיכה של Google לקבלת עזרה נוספת.
CONFIG_VALIDATION_ERROR
השגיאה הזו מציינת שלא ניתן להחיל בהצלחה הגדרה מסוימת שקשורה לרשת Mesh על חברות אחת או יותר בצי. בפרטי השגיאה מוסבר איך המשתמש יכול לטפל בה בצורה הטובה ביותר.
membershipStates:
projects/test-project/locations/us-central1/memberships/my-membership:
servicemesh:
conditions:
- code: CONFIG_VALIDATION_ERROR
details: 'Unsupported ProxyConfig fields: [proxyconfig.statNameLength]'
severity: ERROR
controlPlaneManagement:
שגיאות באימות ההגדרה של דרישת תצורה ספציפית מחייבות פעולה מצד המשתמש. לדוגמה, כדי לפתור שגיאות שקשורות לשימוש בשדות API שלא נתמכים, מומלץ להסיר את ההגדרה הבעייתית מ-Mesh API.
במסוף Cloud, עוברים אל Kubernetes Engine > Secrets & ConfigMaps > istio-asm-managed (השם של ConfigMap תלוי בערוץ ההפצה שבו אתם משתמשים, למשל istio-asm-managed-stable או istio-asm-managed-rapid) ואז בוחרים בכרטיסייה YAML.
לדוגמה, אין יותר תמיכה ב-meshConfig.configSources:
apiVersion: v1
data:
mesh: |
enablePrometheusMerge: true
trustDomain: "foobar.svc.id.goog"
trustDomainAliases:
- cluster.local
configSources:
- address: k8s://
- address: fs:///var/lib/istio/config/data