Aucune connectivité réseau entre le plan d'exécution et le plan de contrôle

Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Il n'existe pas de documentation Apigee Edge équivalente pour ce sujet.

Symptômes

  • Les produits d'API, les développeurs et les applications ne sont pas renseignés dans l'interface utilisateur d'Apigee.
  • Les déploiements de proxy d'API ne se terminent pas.
  • Les requêtes API de gestion exécutées pour la lecture et l'écriture de produits d'API, de développeurs et d'applications échouent.

Messages d'erreur

Cette section décrit les messages d'erreur possibles qui s'affichent en l'absence de connexion réseau.

ApigeeIssue

Si ce problème a été signalé en tant que problème Apigee, lorsque la commande suivante est exécutée:

kubectl -n APIGEE_NAMESPACE get apigeeissues

APIGEE_NAMESPACE est le nom d'un regroupement de ressources Kubernetes.

le code d'erreur suivant s'affiche :

NAME                               SEVERITY    AGE URL
control-plane-connectivity-failure Error       1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity

Pages de l'interface utilisateur d'Apigee pour les produits d'API, les développeurs et les applications

Les pages de l'interface utilisateur d'Apigee pour les produits d'API, les développeurs et les applications affichent l'erreur suivante :

Error: no connections available from the Apigee connect agent(s):
refer to documentation to triage further.

Journaux apigee-synchronizer

Le message d'erreur suivant peut s'afficher dans les journaux 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)

Journaux apigee-watcher

Le message d'erreur suivant peut s'afficher dans les journaux 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"}

Causes possibles :

Plate-forme Cause Description
Tout Aucun itinéraire réseau disponible pour Internet Si aucune route réseau n'est disponible pour Internet, les composants du plan d'exécution d'Apigee ne pourront pas communiquer avec les API du plan de contrôle d'Apigee.
Tout Les points de terminaison de l'API Apigee ne sont pas autorisés Si un pare-feu est en place, il est possible que les points de terminaison de l'API Apigee n'aient pas été ajoutés à la liste d'autorisation.
GKE L'accès privé à Google n'est pas activé Si le déploiement est effectué sur GKE, il est possible que l'accès privé à Google n'ait pas été activé dans le sous-réseau.
Tout Défaillance de réseau inconnue Ce problème peut se produire en cas de défaillance inconnue du réseau du cluster lors de la connexion à Internet.

Cause : Aucune route réseau disponible sur Internet

Diagnostic

  1. Selon la plateforme utilisée, vérifiez si une route réseau est disponible du réseau du cluster vers Internet. Par exemple, pour en savoir plus sur la mise en réseau sur GKE, consultez la page Présentation du réseau.
  2. Demandez à votre équipe d'infrastructure et de réseau si le réseau de cluster utilise un serveur proxy de transfert pour se connecter à Internet.

Solution

  1. Contactez l'administrateur réseau et ajoutez une route réseau à Internet si possible.
  2. Si un serveur proxy de transfert est utilisé pour la communication entre le réseau du cluster et Internet, configurez les paramètres de serveur proxy de transfert dans Apigee à l'aide du fichier overrides.yaml et appliquez cette modification au plan d'exécution.
    apigeectl apply --settings virtualhosts -f overrides/overrides.yaml

Cause : Les points de terminaison de l'API Apigee ne figurent pas sur la liste d'autorisation

Diagnostic

Contactez l'administrateur réseau et vérifiez si la liste des points de terminaison d'API Apigee figure sur la liste d'autorisation dans le pare-feu de la plateforme sur laquelle Apigee est installé. Pour GKE, il peut s'agir du pare-feu Cloud nouvelle génération.

Solution

Si la liste ci-dessus des points de terminaison de l'API Apigee ne figure pas sur la liste d'autorisation, contactez l'administrateur réseau et remplissez cette exigence.

Cause : l'accès privé à Google n'est pas activé

Diagnostic

  1. Si Apigee est déployé sur un cluster GKE privé qui n'a pas accès à Internet, l' accès privé à Google doit être activé pour permettre aux composants du plan d'exécution Apigee d'accéder aux API Google en interne.
  2. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  3. Cliquez sur le nom d'un réseau.
  4. Dans l'onglet Sous-réseaux, dans la colonne Accès privé à Google, vérifiez que le sous-réseau concerné est activé. Si ce n'est pas le cas, il s'agit de la raison de cet échec.

Solution

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Cliquez sur le nom d'un réseau.
  3. Cliquez sur le nom d'un sous-réseau.
  4. Cliquez sur Modifier.
  5. Sélectionnez Accès privé à Google activé.
  6. Cliquez sur Enregistrer. Une fois l'accès activé, ce problème sera résolu.

Cause: défaillance de réseau inconnue

Diagnostic

Contactez votre administrateur réseau et vérifiez s'il existe des échecs inconnus dans le réseau du cluster.

Solution

Collaborez avec votre administrateur réseau et résolvez les problèmes dans le réseau du cluster. Une fois les problèmes réseau résolus, ce problème sera résolu.

Vous devez collecter des informations de diagnostic

Si le problème persiste, même après avoir suivi les instructions ci-dessus, rassemblez les informations de diagnostic suivantes, puis contactez Google Cloud Customer Care :

  1. ID de projet Google Cloud
  2. Nom de l'organisation Apigee Hybrid
  3. Les résultats des commandes suivantes exécutées sur tous les nœuds du cluster Kubernetes :
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. Le fichier overrides.yaml, en masquant toutes les informations sensibles.
  5. État du pod Kubernetes dans tous les espaces de noms :
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. Fichier de vidage cluster-info Kubernetes :

    Générez un fichier de vidage cluster-info Kubernetes :

    kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump

    Fichier ZIP de vidage cluster-info Kubernetes :

    zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*