Síntoma
Tus pods apigee-ingressgateway solo muestran 1 de los 2 contenedores en ejecución cuando obtienes la lista de pods.
Por ejemplo, cuando ejecutas el siguiente comando:
kubectl -n apigee get pods -l app=apigee-ingressgateway
Resultado:
NAME READY STATUS RESTARTS AGE apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-shl9r 1/2 Running 0 6m48s apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-vvzsf 1/2 Running 0 123m
Además, si ejecutas el comando describe en uno de los pods anteriores, se mostrará que la comprobación de disponibilidad falla con el código de estado 503.
Por ejemplo, en la sección Events de la descripción del pódcast, puede ver el siguiente mensaje:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Unhealthy 76s (x32903 over 18h) kubelet Readiness probe failed: HTTP probe failed with statuscode: 503
Causa posible
| Causa | Descripción |
|---|---|
| El ingreso de Apigee está configurado para escuchar en el puerto 80 | La configuración de entrada de Apigee en el puerto 80 ya no se admite a partir de Apigee Hybrid 1.9. |
Causa: el objeto Ingress de Apigee está configurado para escuchar en el puerto 80
Este problema se debe a que la pasarela de entrada de Apigee está configurada para escuchar en el puerto 80, que ya no se admite a partir de Apigee Hybrid 1.9.
Esto puede ocurrir si has actualizado desde una versión anterior de Apigee Hybrid que permitía el puerto 80 o si hay otro error de configuración que lo haya habilitado.
Diagnóstico
-
Obtén una lista de tus pods
apigee-ingressgateway.Ejecuta el siguiente comando:
kubectl -n apigee get pods -l app=apigee-ingressgatewayEjemplo de salida
NAME READY STATUS RESTARTS AGE apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-shl9r 1/2 Running 0 6m48s apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-vvzsf 1/2 Running 0 123m
-
Describe uno de los pods de la lista para comprobar los eventos:
kubectl -n apigee describe pod APIGEE_INGRESSGATEWAY_PODDonde APIGEE_INGRESSGATEWAY_POD es un pod
apigee-ingressgatewayque aparece en el resultado del comando anterior.Ejemplo:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning Unhealthy 76s (x32903 over 18h) kubelet Readiness probe failed: HTTP probe failed with statuscode: 503
-
Obtén los registros del pod APIGEE_INGRESSGATEWAY_POD.
kubectl -n apigee logs APIGEE_INGRESSGATEWAY_PODPuede que vea una entrada de registro que muestre que no se ha podido enlazar el puerto 80 debido a un error de permiso denegado, seguido de un mensaje que indica que Envoy no está listo.
2025-09-11T06:16:45.457621Z error envoy config external/envoy/source/common/listener_manager/listener_manager_impl.cc:1186 listener '0.0.0.0_80' failed to bind or apply socket options: cannot bind '0.0.0.0:80': Permission denied ... 2025-09-11T06:16:46.365818Z warn Envoy proxy is NOT ready: config received from XDS server, but was rejected: cds updates: 1 successful, 0 rejected; lds updates: 0 successful, 1 rejected
- Revisa la configuración de
apigeerouteactual para encontrar la que tiene habilitado el puerto 80 (HTTP).-
Obtener una lista de las rutas de Apigee definidas.
kubectl -n apigee get apigeerouteEjemplo:
NAME STATE AGE myorg-hyb-dev-grp-000-33620d0 running 2d1h non-sni running 17s
-
Comprueba cada
apigeeroutepara ver dónde se define el puerto 80.Ejecuta el siguiente comando para cada
apigeerouteque aparezca en el resultado del comando anterior:kubectl -n apigee get apigeeroute APIGEE_ROUTE_NAME -o yamlAPIGEE_ROUTE_NAME es el nombre de un
apigeeroute.Comando de ejemplo:
kubectl -n apigee get apigeeroute non-sni -o yamlEjemplo:
ElapiVersion: apigee.cloud.google.com/v1alpha2 kind: ApigeeRoute metadata: name: non-sni namespace: apigee resourceVersion: "240441468" spec: enableNonSniClient: true hostnames: - '*' ports: - number: 443 protocol: HTTPS tls: credentialName: myorg-hyb-dev-grp minProtocolVersion: TLS_AUTO mode: SIMPLE - number: 80 protocol: HTTP selector: app: apigee-ingressgateway status: lastAppliedGeneration: 1 state: runningapigeerouteno SNI muestra que el puerto 80 está habilitado como parte de esta ruta.
-
Obtener una lista de las rutas de Apigee definidas.
Resolución
Para solucionar este problema, inhabilita el puerto 80 en el archivo apigeeroute yaml original eliminando las siguientes líneas.
- number: 80
protocol: HTTP
Si no tienes el archivo apigeeroute yaml original, puedes seguir estos pasos:
- Exporta la configuración actual con el siguiente comando:
kubectl -n apigee get apigeeroute APIGEE_ROUTE_NAME -o yaml > APIGEE_ROUTE_FILENAME.yamlDonde APIGEE_ROUTE_NAME es el
apigeerouteque se está actualizando para eliminar la configuración del puerto 80.Donde APIGEE_ROUTE_FILENAME es el nombre del archivo de salida que contiene el contenido
apigeerouteen formato YAML. -
Edita el archivo
apigeerouteyaml para quitar la configuración del puerto 80.Abre el archivo APIGEE_ROUTE_FILENAME en un editor de texto y elimina las siguientes líneas:
- number: 80 protocol: HTTP -
Sustituye el archivo
apigeeroutepor el archivo YAML modificado:kubectl -n apigee replace -f APIGEE_ROUTE_FILENAME.yamlDonde APIGEE_ROUTE_FILENAME es el archivo de salida que contiene la configuración
apigeerouteactualizada. -
Los pods
apigee-ingressgatewayahora deberían ejecutarse con 2/2 contenedores. Si no lo hacen, elimina los pods para que se creen otros automáticamente.NAME READY STATUS RESTARTS AGE apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-shl9r 2/2 Running 0 25h apigee-ingressgateway-ext-ingress-myorg-hyb-8f2c412-vvzsf 2/2 Running 0 26h
Debe recoger información de diagnóstico
Si el problema persiste incluso después de seguir las instrucciones anteriores, reúne la siguiente información de diagnóstico y ponte en contacto con el equipo de Asistencia de Google Cloud:- Overrides.yaml
- Resultado de los siguientes comandos:
kubectl -n apigee get pods -l app=apigee-ingressgateway
kubectl -n apigee logs APIGEE_INGRESSGATEWAY_POD
kubectl -n apigee get apigeeroutes
- Ejecuta el siguiente comando para cada una de las rutas indicadas:
kubectl -n apigee get apigeeroute APIGEE_ROUTE_NAME -o yaml
- También puede ejecutar y proporcionar la información de must-gather de Apigee Hybrid.