Keine Netzwerkverbindung zwischen Laufzeitebene und Steuerungsebene

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./li>

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 und der folgende Befehl ausgeführt wird:

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

Seiten für API-Produkte, Entwickler und Apps Apigee-UI

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

Die folgende Fehlermeldung wird in apigee-synchronizer-Logs 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

Die folgende Fehlermeldung wird in apigee-watcher-Logs 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, stehen Apigee API-Endpunkte möglicherweise nicht auf der Zulassungsliste.
GKE Privater Google-Zugriff ist nicht aktiviert Wenn das Deployment in GKE erfolgt, wurde der private Google-Zugriff möglicherweise im Subnetz nicht aktiviert.
Alle Unbekannter Netzwerkfehler Wenn im Clusternetzwerk ein unbekannter Fehler beim Herstellen einer Verbindung zum Internet auftritt, kann dieses Problem auftreten.

Ursache: Keine Netzwerkroute zum Internet verfügbar

Diagnose

  1. 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.
  2. Erkundigen Sie sich bei Ihrem Infrastruktur- und Netzwerkteam, ob das Clusternetzwerk einen Weiterleitungsproxy-Server für die Verbindung zum Internet verwendet.

Lösung

  1. Wenden Sie sich an den Netzwerkadministrator und fügen Sie nach Möglichkeit eine Netzwerkroute zum Internet hinzu.
  2. 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 auf die Laufzeitebene an.
    apigeectl apply --settings virtualhosts -f overrides/overrides.yaml

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 könnte dies Cloud Next Generation Firewall sein.

Lösung

Wenn die obige Liste der Apigee API-Endpunkte nicht auf der Zulassungsliste steht, wenden Sie sich an den Netzwerkadministrator und erfüllen Sie diese Anforderung.

Ursache: Privater Google-Zugriff ist nicht aktiviert

Diagnose

  1. 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.
  2. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  3. Klicken Sie auf den Namen eines Netzwerks.
  4. Prüfen Sie auf dem Tab Subnetze in der Spalte Privater Google-Zugriff, ob das relevante Subnetz aktiviert ist. Sollte dies nicht der Fall sein, ist das der Grund für diesen Fehler.

Lösung

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen eines Netzwerks.
  3. Klicken Sie auf den Namen eines Subnetzes.
  4. Klicken Sie auf  Bearbeiten.
  5. Wählen Sie Privater Google-Zugriff ein aus.
  6. Klicken Sie auf Speichern. Nach der Aktivierung wird dieses Problem behoben.

Ursache: Unbekannter Netzwerkfehler

Diagnose

Wenden Sie sich an Ihren Netzwerkadministrator und prüfen Sie, ob unbekannte Fehler im Clusternetzwerk auftreten.

Lösung

Wenden Sie sich an Ihren Netzwerkadministrator und beheben Sie die Probleme im Clusternetzwerk. 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 Google Cloud Customer Care:

  1. Die Google Cloud-Projekt-ID.
  2. Der Name der Apigee Hybrid-Organisation.
  3. 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
  4. Die Datei overrides.yaml, die alle vertraulichen Informationen maskiert.
  5. Kubernetes-Pod-Status in allen Namespaces:
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. 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/*