Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Síntoma
Es posible que observes uno de los siguientes síntomas:
- Las aplicaciones cliente obtienen errores de tiempo de espera como respuesta a las llamadas a la API en Apigee Hybrid.
- Observas errores como
Error from server (invalid)
oThe Job "apigee-resources-install" is invalid
mientras aplicas la configuración (overrides.yaml)
al clúster durante la instalación de Apigee Hybrid).
Mensajes de error
Es posible que observes uno de los siguientes errores:
Respuesta de error a las llamadas a la API
Las solicitudes a la API en Apigee Hybrid pueden fallar con el siguiente mensaje de error:
* Connection failed * connect to 34.84.67.39 port 443 failed: Operation timed out * Failed to connect to example.apis.com port 443: Operation timed out * Closing connection 0 curl: (7) Failed to connect to example.apis.com port 443: Operation timed out
Errores observados mientras se aplica la configuración (overrides.yaml) a los clústeres
Puedes observar uno de los siguientes errores mientras aplicas la configuración (archivo overrides.yaml
) a los clústeres durante la instalación:
Error #1
apigeectl init -f overrides/overrides.yaml
... ... Error from server (Invalid): error when applying patch: to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-10-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-11-1.4.6", Namespace: "istio-system" to: Resource: "batch/v1, Resource=jobs", GroupVersionKind: "batch/v1, Kind=Job" Name: "istio-init-crd-14-1.4.6", Namespace: "istio-system"
Error #2
apigeectl init -f overrides/overrides.yaml
... ... The Job "apigee-resources-install" is invalid: spec.template: Invalid value: core.PodTemplateSpec{ObjectMeta:v1.ObjectMeta{Name:"apigee-resources-install", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0,
Causas posibles
Estos errores pueden ocurrir si el servicio istio-ingressgateway
está en estado pending
y no puede vincularse a una dirección IP externa como se muestra a continuación:
kubectl get services -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.198.5.104 <pending> 15020:31927/TCP, 12h 80:31381/TCP, 443:31391/TCP, 31400:31401/TCP, 15443:32623/TCP
Las posibles causas de que el servicio istio-ingressgateway
esté en estado pending
pueden ser las siguientes:
Causa | Descripción |
---|---|
Trabajos en estado erróneo o pendiente en el espacio de nombres istio-system | Los trabajos incomplete/erroneous en el espacio de nombres istio-system pueden ocasionar que el servicio istio-ingressgateway esté en estado pending de forma permanente y no pueda vincularse a una dirección IP externa. |
Trabajo de apigee-resources-install en estado erróneo o pendiente en el espacio de nombres apigee-system | Los trabajos incomplete en el espacio de nombres apigee-system pueden provocar que el servicio istio- ingressgateway esté en estado pending de forma permanente y no pueda vincularse a una dirección IP externa. |
Causa: Rango de direcciones IP incorrecto asignado al balanceador de cargas externo | Se puede configurar un rango de direcciones IP incorrecto en el archivo istio-operator.yaml , lo que hace que el servicio istio-ingressgateway pase al estado pending de forma permanente y no pueda vincularse a una dirección IP externa durante la instalación.
|
Causa: Trabajos en el espacio de nombres istio-system en estado erróneo o pendiente
Diagnóstico
- Verifica el estado de los trabajos en el espacio de nombres
istio-system
mediante el siguiente comando:kubectl get jobs -n istio-system
- El estado de los trabajos debe ser
complete
. Si los trabajos tienen el estadoerroneous/pending
, esa es la causa del problema.
Solución
- Si alguno de los trabajos tiene el estado
pending
oerroneous
, bórralos mediante el siguiente comando:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Vuelve a ejecutar la instalación mediante la aplicación del archivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: Es posible que el trabajo de apigee-resources-install en el espacio de nombres de apigee-system esté en estado erróneo.
Diagnóstico
- Verifica el estado de los trabajos en el espacio de nombres
apigee-system
mediante el siguiente comando:kubectl get jobs -n apigee-system
- El estado de los trabajos debe ser
complete
. Si los trabajos tienen el estadoerroneous/pending
, esa es la causa del problema. El siguiente resultado de muestra indica que el trabajoapigee-resources-install
se completó correctamente.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Solución
- Si los trabajos están en estado
pending
oerroneous
, bórralos con el siguiente comando:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Vuelve a ejecutar la instalación mediante la aplicación del archivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: Rango de direcciones IP incorrecto asignado al balanceador de cargas externo
Diagnóstico
- Verifica la dirección IP configurada para el balanceador de cargas en el archivo
istio- operator.yaml
. Por ejemplo, en el siguiente fragmento, se muestra la ubicación en el archivoistio-operator.yaml
donde está configurada la dirección IP:-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- El servicio
istio-ingressgateway
se configura como un balanceador de cargas (indicado por tipo) en el archivoistio-operator.yaml
. Durante la instalación de ASM, se crea un balanceador de cargas con la dirección IP configurada y se conecta para comunicarse con el servicioistio- ingressgateway
. Por lo tanto, la dirección IP configurada debe ser correcta y estar reservada para el balanceador de cargas. - Comunícate con tu equipo de redes y verifica que la dirección IP configurada para
loadBalancerIP
sea correcta. Si es incorrecta, el servicio del balanceador de cargas no podrá vincularse a la dirección IP. Esto hace que el servicioistio-ingressgateway
esté en estadopending
de forma permanente.
Solución
- Trabaja con tu equipo de redes y configura la dirección IP correcta en el archivo
istio- operator.yaml
. - Vuelve a ejecutar la instalación de ASM y aplica el archivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Se debe recopilar información de diagnóstico
Si el problema persiste incluso después de seguir las instrucciones anteriores, recopila la siguiente información de diagnóstico y, luego, comunícate con Atención al cliente de Google Cloud.
- El ID del proyecto de Google Cloud
- El nombre de la organización de Apigee Hybrid
- Nombre del clúster de Kubernetes
- Nombre del proyecto de Google Cloud si el clúster de Kubernetes reside en un proyecto de Google Cloud diferente
- El archivo
overrides.yaml
- El archivo
Istio-operator .yaml
que se usó durante la instalación de ASM. - Recopila los registros de cada pod
istio-ingressgateway
en el espacio de nombresistio-system
:kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Recopila la descripción de cada pod en el espacio de nombres
istio-system
:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Recopila la lista de servicios en el espacio de nombres
istio-system
:kubectl get svc -n istio-system