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 de l'API Management gérées pour la lecture et l'écriture des produits d'API, des développeurs et des applications échouent.

Messages d'erreur

Cette section décrit les messages d'erreur possibles en l'absence de connectivité réseau.

Problème Apigee

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 d'interface utilisateur des produits d'API, des développeurs et des applications

Les pages d'interface utilisateur des produits, des développeurs et des applications Apigee 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 Aucune route réseau disponible sur Internet Si aucune route réseau n'est disponible sur Internet, les composants du plan d'exécution Apigee ne pourront pas communiquer avec les API du plan de contrôle Apigee.
Tout Les points de terminaison de l'API Apigee ne sont pas ajoutés à la liste d'autorisation 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 s'effectue 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 survenir en cas de défaillance inconnue dans le 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 plus d'informations sur la mise en réseau sur GKE, consultez la page Présentation du réseau.
  2. Vérifiez auprès de 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 si possible une route réseau sur Internet.
  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 sont pas ajoutés à 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 d'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 approprié est activé. Si ce n'est pas le cas, c'est 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 défaillances inconnues dans le réseau du cluster.

Solution

Collaborez avec votre administrateur réseau pour résoudre les problèmes liés au 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 l'assistance Apigee :

  1. ID de projet Google Cloud
  2. Nom de l'organisation Apigee Hybrid
  3. Les résultats des commandes suivantes sont exécutées sur tous les nœuds de 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. Le fichier de vidage cluster-info Kubernetes:

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

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

    Compressez les informations du cluster Kubernetes au format Zip:

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