Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Für dieses Thema gibt es keine entsprechende Apigee Edge-Dokumentation.
Symptome
- API-Produkte, Entwickler, Anwendungen werden nicht in die Apigee-Benutzeroberfläche eingefügt.
- API-Proxy-Bereitstellungen werden nicht abgeschlossen.
- Management API-Anfragen, die zum Lesen und Schreiben von API-Produkten, Entwicklern und Apps ausgeführt werden, schlagen fehl.
Fehlermeldungen
In diesem Abschnitt werden die möglichen Fehlermeldungen beschrieben, die angezeigt werden, wenn keine Netzwerkverbindung besteht.
ApigeeIssue
Wenn dieses Problem als ApigeeIssue gemeldet wurde, wird beim Ausführen des folgenden Befehls
kubectl -n APIGEE_NAMESPACE get apigeeissues
wobei APIGEE_NAMESPACE der Name für eine Gruppierung von Kubernetes-Ressourcen ist.
wird der folgende Fehlercode angezeigt:
NAME SEVERITY AGE URL control-plane-connectivity-failure Error 1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity
Apigee-UI-Seiten „API-Produkte“, „Entwickler“ und „Apps“
Auf den Seiten API-Produkte, Entwickler und Apps Apigee-UI wird der folgende Fehler angezeigt:
Error: no connections available from the Apigee connect agent(s): refer to documentation to triage further.
apigee-synchronizer-Logs
In den apigee-synchronizer
-Protokollen wird die folgende Fehlermeldung angezeigt:
{"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-Logs
In den apigee-watcher
-Protokollen wird die folgende Fehlermeldung angezeigt:
{"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"}
Mögliche Ursachen
Plattform | Ursache | Beschreibung |
---|---|---|
Alle | Keine Netzwerkroute zum Internet verfügbar | Wenn keine Netzwerkroute zum Internet verfügbar ist, können die Komponenten der Apigee-Laufzeitebene nicht mit den APIs der Apigee-Steuerungsebene kommunizieren. |
Alle | Apigee API-Endpunkte stehen nicht auf der Zulassungsliste | Wenn eine Firewall vorhanden ist, wurden die Apigee API-Endpunkte möglicherweise nicht auf die Zulassungsliste gesetzt. |
GKE | Privater Google-Zugriff ist nicht aktiviert | Wenn die Bereitstellung in GKE erfolgt, wurde der privater Google-Zugriff möglicherweise nicht im Subnetz aktiviert. |
Alle | Unbekannter Netzwerkfehler | Wenn beim Herstellen einer Internetverbindung ein unbekannter Fehler im Clusternetzwerk auftritt, kann dieses Problem auftreten. |
Ursache: Keine Netzwerkroute zum Internet verfügbar
Diagnose
- Prüfen Sie je nach verwendeter Plattform, ob eine Netzwerkroute vom Clusternetzwerk zum Internet verfügbar ist. Weitere Informationen zur Vernetzung in GKE finden Sie z. B. unter Netzwerkübersicht.
- Erkundigen Sie sich bei Ihrem Infrastruktur- und Netzwerkteam, ob das Clusternetzwerk einen Weiterleitungs-Proxyserver für die Verbindung zum Internet verwendet.
Lösung
- Wenden Sie sich an den Netzwerkadministrator und fügen Sie nach Möglichkeit eine Netzwerkroute zum Internet hinzu.
-
Wenn ein Weiterleitungsproxy-Server für die Kommunikation zwischen dem Clusternetzwerk und dem Internet verwendet wird,
konfigurieren Sie die Einstellungen für den Weiterleitungs-Proxyserver in Apigee mit der Datei
overrides.yaml
und wenden Sie diese Änderung mit dem Helm-Befehl auf die Laufzeitebene an:Probelauf:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP \ -f OVERRIDES_FILE \ --dry-run=server
Achten Sie darauf, alle angezeigten Einstellungen anzugeben, einschließlich
--atomic
, damit die Aktion bei einem Fehler rückgängig gemacht wird.Ihre Installation wurde möglicherweise mit einer ENV_GROUP_RELEASE_NAME eingerichtet, die sich von ENV_GROUP unterscheidet. Informationen zu den Einstellungen finden Sie unter Apigee Hybrid mit Helm installieren.
Installation des Diagramms:
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP \ -f OVERRIDES_FILE
Ursache: Apigee API-Endpunkte stehen nicht auf der Zulassungsliste
Diagnose
Erkundigen Sie sich beim Netzwerkadministrator, ob die Liste der Apigee API-Endpunkte in der Firewall auf der Plattform, auf der Apigee installiert ist, auf der Zulassungsliste steht. Für GKE kann dies die Cloud Next Generation Firewall sein.
Lösung
Wenn die oben aufgeführte Liste der Apigee API-Endpunkte nicht auf der Zulassungsliste steht, wenden Sie sich an den Netzwerkadministrator und erfüllen Sie diese Anforderung.
Ursache: Der privater Google-Zugriff ist nicht aktiviert
Diagnose
- Wenn Apigee auf einem privaten GKE-Cluster ohne Zugang zum Internet eingesetzt wird, muss der private Google-Zugriff aktiviert werden, um den Komponenten der Apigee-Laufzeitebene den internen Zugriff auf Google APIs zu ermöglichen.
-
Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.
- Klicken Sie auf den Namen eines Netzwerks.
- Prüfen Sie auf dem Tab Subnetze in der Spalte Privater Google-Zugriff, ob das entsprechende Subnetz aktiviert ist. Sollte dies nicht der Fall sein, ist das der Grund für diesen Fehler.
Lösung
-
Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.
- Klicken Sie auf den Namen eines Netzwerks.
- Klicken Sie auf den Namen eines Subnetzes.
- Klicken Sie auf Bearbeiten.
- Wählen Sie Privater Google-Zugriff aktiviert aus.
- Klicken Sie auf Speichern. Nach der Aktivierung wird das Problem behoben.
Ursache: Unbekannter Netzwerkfehler
Diagnose
Wenden Sie sich an Ihren Netzwerkadministrator und prüfen Sie, ob es unbekannte Fehler im Clusternetzwerk gibt.
Lösung
Wenden Sie sich an Ihren Netzwerkadministrator, um die Probleme im Clusternetzwerk zu beheben. Sobald die Netzwerkprobleme behoben wurden, wird auch dieses Problem behoben.
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen und wenden Sie sich dann an den Google Cloud-Support:
- Die Google Cloud Projekt-ID.
- Der Name der Apigee Hybrid-Organisation.
- Die Ausgaben der folgenden Befehle, die auf allen Kubernetes-Clusterknoten ausgeführt werden:
ping apigee.googleapis.com
traceroute apigee.googleapis.com
telnet apigee.googleapis.com 443
- Die Datei
overrides.yaml
, die alle vertraulichen Informationen maskiert. - Kubernetes-Pod-Status in allen Namespaces:
kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
- Der Cluster-Info-Dump von Kubernetes:
Cluster-Info-Dump von Kubernetes generieren:
kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump
Cluster-Info-Dump von Kubernetes zippen:
zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*