No hay conectividad de red entre el plano de ejecución y el plano de control

Estás consultando la documentación de Apigee y Apigee hybrid.
No hay documentación equivalente de Apigee Edge sobre este tema.

Síntomas

  • Los productos de API, los desarrolladores y las aplicaciones no se rellenan en la interfaz de Apigee.
  • Los despliegues de proxies de API no se completan.
  • Las solicitudes de la API Management que se ejecutan para leer y escribir productos de API, desarrolladores y aplicaciones fallan.

Mensajes de error

En esta sección se describen los posibles mensajes de error que se muestran cuando no hay conectividad de red.

ApigeeIssue

Si este problema se ha notificado como ApigeeIssue, cuando se ejecuta el siguiente comando:

kubectl -n APIGEE_NAMESPACE get apigeeissues

donde APIGEE_NAMESPACE es el nombre de una agrupación de recursos de Kubernetes.

Se muestra el siguiente código de error:

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

Páginas de la interfaz de usuario de Apigee de productos de API, desarrolladores y aplicaciones

En las páginas de la interfaz de usuario de Apigee Productos de API, Desarrolladores y Aplicaciones se muestra el siguiente error:

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

Registros de apigee-synchronizer

El siguiente mensaje de error se puede ver en los registros de 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)

Registros de apigee-watcher

El siguiente mensaje de error se puede ver en los registros de 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"}

Causas posibles

Plataforma Causa Descripción
Todo No hay ninguna ruta de red disponible para Internet Si no hay ninguna ruta de red disponible para Internet, los componentes del plano de tiempo de ejecución de Apigee no podrán comunicarse con las APIs del plano de control de Apigee.
Todo Los endpoints de la API de Apigee no están en la lista de permitidos Si hay un cortafuegos, es posible que los endpoints de la API de Apigee no se hayan incluido en la lista de permitidos.
GKE El acceso privado de Google no está habilitado Si la implementación se realiza en GKE, es posible que la función Acceso privado de Google no se haya habilitado en la subred.
Todo Error de red desconocido Este problema puede producirse si se produce un error desconocido en la red del clúster al conectarse a Internet.

Causa: No hay ninguna ruta de red disponible para Internet

Diagnóstico

  1. En función de la plataforma utilizada, comprueba si hay una ruta de red disponible desde la red del clúster a Internet. Por ejemplo, para obtener más información sobre las redes en GKE, consulta la información general sobre redes.
  2. Ponte en contacto con tu equipo de infraestructura y redes para comprobar si la red del clúster utiliza un servidor proxy directo para conectarse a Internet.

Resolución

  1. Ponte en contacto con el administrador de la red y añade una ruta de red a Internet si es posible.
  2. Si se usa un servidor proxy de reenvío para la comunicación entre la red del clúster e Internet, configura los ajustes del servidor proxy de reenvío en Apigee mediante el archivo overrides.yaml y aplica ese cambio al plano de tiempo de ejecución con el comando Helm:

    Prueba de funcionamiento:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE \
    --dry-run=server
    

    Asegúrate de incluir todos los ajustes que se muestran, incluido --atomic para que la acción se revierta si falla.

    Es posible que tu instalación se haya configurado con un ENV_GROUP_RELEASE_NAME diferente de ENV_GROUP. Para obtener información sobre los ajustes, consulta Instalar Apigee hybrid con Helm.

    Instala el gráfico:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE
    

Causa: los endpoints de la API de Apigee no están en la lista de permitidos

Diagnóstico

Ponte en contacto con el administrador de la red y comprueba si la lista de endpoints de la API de Apigee está en la lista de permitidos del firewall de la plataforma en la que está instalada Apigee. En el caso de GKE, podría ser Cloud Next Generation Firewall.

Resolución

Si los endpoints de la API de Apigee de la lista anterior no están en la lista de permitidos, ponte en contacto con el administrador de la red y cumple ese requisito.

Causa: Acceso privado de Google no habilitado

Diagnóstico

  1. Si Apigee se implementa en un clúster privado de GKE que no tiene acceso a Internet, se debe habilitar Acceso privado de Google para permitir que los componentes del plano de ejecución de Apigee accedan a las APIs de Google de forma interna.
  2. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  3. Haga clic en el nombre de una red.
  4. En la pestaña Subredes, en la columna Acceso privado de Google, comprueba que la subred correspondiente esté habilitada. Si no es así, ese es el motivo del fallo.

Resolución

  1. En la Google Cloud consola, ve a la página Redes de VPC.

    Ir a redes de VPC

  2. Haga clic en el nombre de una red.
  3. Haga clic en el nombre de una subred.
  4. Haz clic en Editar.
  5. Selecciona Acceso privado de Google activado.
  6. Haz clic en Guardar. Una vez habilitada, este problema se resolverá.

Causa: fallo de red desconocido

Diagnóstico

Ponte en contacto con tu administrador de red y comprueba si hay errores desconocidos en la red del clúster.

Resolución

Colabora con tu administrador de red para resolver los problemas de la red del clúster. Una vez que se solucionen los problemas de red, este problema se resolverá.

Debe recoger información de diagnóstico

Si el problema persiste incluso después de seguir las instrucciones anteriores, recoge la siguiente información de diagnóstico y ponte en contacto con el equipo de Asistencia de Google Cloud:

  1. El Google Cloud ID del proyecto.
  2. Nombre de la organización de Apigee Hybrid.
  3. Los resultados de los siguientes comandos ejecutados en todos los nodos del clúster de Kubernetes:
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. El archivo overrides.yaml, que oculta la información sensible.
  5. El estado del pod de Kubernetes en todos los espacios de nombres:
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. El volcado de información del clúster de Kubernetes:

    Genera un volcado de información del clúster de Kubernetes:

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

    Comprime el volcado de información del clúster de Kubernetes:

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