תסמינים
- מוצרי API, מפתחים ואפליקציות לא מאוכלסים בממשק המשתמש של Apigee.
- פריסות של proxy ל-API לא מושלמות.
- בקשות ל-Management API שמופעלות לקריאה ולכתיבה של מוצרי API, מפתחים ואפליקציות נכשלות.
הודעות שגיאה
בקטע הזה מתוארות הודעות השגיאה האפשריות שמוצגות כשאין חיבור לרשת.
ApigeeIssue
אם הבעיה הזו דווחה כ-ApigeeIssue, כשמריצים את הפקודה הבאה:
kubectl -n APIGEE_NAMESPACE get apigeeissues
כאשר APIGEE_NAMESPACE הוא השם של קבוצת משאבי Kubernetes.
מוצג קוד השגיאה הבא:
NAME SEVERITY AGE URL control-plane-connectivity-failure Error 1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity
דפים בממשק המשתמש של Apigee: מוצרי API, מפתחים ואפליקציות
בדפים API products (מוצרי API), Developers (מפתחים) ו-Apps (אפליקציות) בממשק המשתמש של Apigee מוצגת השגיאה הבאה:
Error: no connections available from the Apigee connect agent(s): refer to documentation to triage further.
יומנים של apigee-synchronizer
הודעת השגיאה הבאה יכולה להופיע ביומני apigee-synchronizer:
{"level":"SEVERE","thread":"Apigee-Timer-3","mdc":{"action":"SYNC","env":"dev", "org":"example-hybrid-dev"},"className":"com.apigee.httpclient.adaptor.RequestAdaptor", "method":"doSend","severity":"SEVERE","message":"request failed [CONTEXT ratelimit_period\u003d\"1 MINUTES [skipped: 1]\" ]", "formattedDate":"2023-02-01T06:27:48.700Z","logger":"SERVICES.HTTPCLIENTSERVICE", "exceptionStackTrace":"java.net.SocketTimeoutException: connect timed out ... com.apigee.httpclient.adaptor.RequestAdaptor.send(RequestAdaptor.java:251) at com.apigee.hybrid.runtime.contract.sync.context.HttpContractDownloader.download(HttpContractDownloader.java:84) at com.apigee.hybrid.runtime.contract.sync.context.ControlPlaneReplicationContext.getContract(ControlPlaneReplicationContext.java:66)
יומנים של apigee-watcher
הודעת השגיאה הבאה יכולה להופיע ביומני apigee-watcher:
{"level":"error","ts":1675232549.5093117,"caller":"watcher/watcher.go:60", "msg":"error during watch","name":"mpstatus","error":"INTERNAL: error sending mp status to mgmt: INTERNAL: failed to send runtime status Post \"https://apigee.googleapis.com/v1/organizations/example-hybrid-dev/instances/apigee-hybrid-australia-southeast1:reportStatus\": dial tcp 172.217.24.42:443: i/o timeout","stacktrace": "edge-internal.git.corp.google.com/apigee-watcher.git/watcher. (*Watcher).Start.func1.1\n\t/go/src/edge-internal/apigee-watcher/watcher/watcher.go:60"}
סיבות אפשריות
| פלטפורמה | מטרה | תיאור |
|---|---|---|
| הכול | אין נתיב ברשת שמוביל לאינטרנט | אם אין נתיב רשת זמין לאינטרנט, רכיבי מישור זמן הריצה של Apigee לא יוכלו לתקשר עם ממשקי ה-API של מישור הבקרה של Apigee. |
| הכול | נקודות הקצה (endpoints) של Apigee API לא מופיעות ברשימת ההיתרים | אם יש חומת אש, יכול להיות שנקודות הקצה של Apigee API לא נוספו לרשימת ההיתרים. |
| GKE | הגישה הפרטית ל-Google לא מופעלת | אם הפריסה מתבצעת ב-GKE, יכול להיות שלא הופעלה גישה פרטית ל-Google ברשת המשנה. |
| הכול | תקלה לא ידועה ברשת | הבעיה הזו יכולה לקרות אם יש כשל לא ידוע ברשת של האשכול כשמתחברים לאינטרנט. |
הסיבה: אין נתיב רשת זמין לאינטרנט
אבחון
- בהתאם לפלטפורמה שבה משתמשים, צריך לוודא שיש נתיב רשת שזמין מרשת האשכול לאינטרנט. לדוגמה, למידע נוסף על רשתות ב-GKE, אפשר לעיין במאמר סקירה כללית של רשתות.
- כדאי לבדוק עם צוות התשתית והרשת אם רשת האשכול משתמשת בשרת proxy קדימה כדי להתחבר לאינטרנט.
רזולוציה
- צריך לפנות לאדמין של הרשת ולהוסיף נתיב ברשת לאינטרנט, אם אפשר.
-
אם משתמשים בשרת proxy קדימה לתקשורת בין רשת האשכול לאינטרנט, צריך
להגדיר את ההגדרות של שרת ה-proxy הקדימה ב-Apigee באמצעות הקובץ
overrides.yamlולהחיל את השינוי הזה על מישור זמן הריצה באמצעות הפקודה Helm:הרצת בדיקה:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP \ -f OVERRIDES_FILE \ --dry-run=server
חשוב לכלול את כל ההגדרות שמוצגות, כולל
--atomicכדי שהפעולה תבוטל אם היא תיכשל.יכול להיות שההתקנה שלכם הוגדרה באמצעות ENV_GROUP_RELEASE_NAME ששונה מ-ENV_GROUP, ויכול להיות שלא. מידע על ההגדרות מופיע במאמר בנושא התקנת Apigee hybrid באמצעות Helm.
מתקינים את התרשים:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP \ -f OVERRIDES_FILE
הסיבה: נקודות הקצה (endpoints) של Apigee API לא מופיעות ברשימת ההיתרים
אבחון
צריך לפנות לאדמין של הרשת ולבדוק אם רשימת נקודות הקצה של Apigee API מופיעה ברשימת ההיתרים בחומת האש בפלטפורמה שבה Apigee מותקן. ב-GKE, יכול להיות שזה יהיה Cloud Next Generation Firewall.
רזולוציה
אם נקודות הקצה של Apigee API שמופיעות ברשימה שלמעלה לא מופיעות ברשימת ההיתרים, צריך לפנות לאדמין של הרשת ולדאוג שהדרישה הזו תתקיים.
הסיבה: לא מופעלת גישה פרטית ל-Google
אבחון
- אם Apigee נפרס ב אשכול GKE פרטי שאין לו גישה לאינטרנט, צריך להפעיל את הגישה הפרטית ל-Google כדי לאפשר לרכיבי מישור זמן הריצה של Apigee גישה פנימית ל-Google APIs.
-
נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על שם הרשת.
- בכרטיסייה Subnets (רשתות משנה), בעמודה Private Google Access (גישה פרטית ל-Google), מוודאים שהרשת המשנה הרלוונטית מופעלת. אם לא, זו הסיבה לכשל.
רזולוציה
-
נכנסים לדף VPC networks במסוף Google Cloud .
- לוחצים על שם הרשת.
- לוחצים על השם של רשת המשנה.
- לוחצים על עריכה.
- בוחרים באפשרות הפעלה של גישה פרטית ל-Google.
- לוחצים על Save. אחרי ההפעלה, הבעיה תיפתר.
הסיבה: כשל לא ידוע ברשת
אבחון
צריך לפנות לאדמין של הרשת ולבדוק אם יש כשלים לא מוכרים ברשת של האשכול.
רזולוציה
פועלים יחד עם מנהל הרשת כדי לפתור את הבעיות ברשת של האשכול. הבעיה הזו תיפתר אחרי שהבעיות ברשת יטופלו.
צריך לאסוף פרטי אבחון
אם הבעיה נמשכת גם אחרי שמבצעים את ההוראות שלמעלה, צריך לאסוף את נתוני האבחון הבאים ואז לפנות אל Cloud Customer Care:
- מזהה הפרויקט ב- Google Cloud .
- השם של הארגון ב-Apigee Hybrid.
- הפלט של הפקודות הבאות שמופעלות בכל הצמתים של אשכול Kubernetes:
ping apigee.googleapis.com
traceroute apigee.googleapis.com
telnet apigee.googleapis.com 443
- קובץ
overrides.yaml, עם הסתרת מידע רגיש. - הסטטוס של ה-pod ב-Kubernetes בכל מרחבי השמות:
kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
- הדאמפ של פרטי האשכול ב-Kubernetes:
יצירת העתקה של פרטי אשכול Kubernetes:
kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump
דחיסת dump של פרטי אשכול Kubernetes:
zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*