Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Síntoma
Puede observar uno de los siguientes síntomas:
- Las aplicaciones cliente reciben errores de tiempo de espera como respuesta a las llamadas a la API en Apigee hybrid.
- Se producen errores como
Error from server (invalid)
oThe Job "apigee-resources-install" is invalid
al aplicar la configuración (overrides.yaml
) al clúster durante la instalación híbrida.
Mensajes de error
Puede 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 y mostrar 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 al aplicar la configuración (overrides.yaml) a los clústeres
Puede que se produzca uno de los siguientes errores al aplicar la configuración (archivo overrides.yaml
) a los clústeres durante la instalación:
Error 1
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
... ... 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 n.º 2
helm upgrade operator apigee-operator/ \ --install \ --create-namespace \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
... ... 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,
Posibles motivos
Estos errores pueden producirse si el servicio istio-ingressgateway
se encuentra en un estado pending
y no puede enlazarse 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
Estos son los posibles motivos por los que el servicio istio-ingressgateway
puede estar en estado pending
:
Causa | Descripción |
---|---|
Trabajos en estado de error o pendiente en el espacio de nombres istio-system | Los trabajos incomplete/erroneous del espacio de nombres istio-system podrían provocar que el servicio istio-ingressgateway esté en estado pending para siempre y no pueda enlazarse a una dirección IP externa. |
El trabajo apigee-resources-install está en estado de error o pendiente en el espacio de nombres apigee-system | Los trabajos incomplete del espacio de nombres apigee-system podrían provocar que el servicio istio- ingressgateway esté en estado pending indefinidamente y no pueda enlazarse a una dirección IP externa. |
Intervalo de direcciones IP incorrecto asignado al balanceador de carga externo | Es posible que se haya configurado un intervalo de direcciones IP incorrecto en el archivo istio-operator.yaml , lo que provoca que el servicio istio-ingressgateway se quede en el estado pending para siempre y no pueda enlazarse a una dirección IP externa durante la instalación.
|
Causa: las tareas del espacio de nombres istio-system están en estado de error o pendiente
Diagnóstico
- Comprueba el estado de los trabajos del espacio de nombres
istio-system
con el siguiente comando:kubectl get jobs -n istio-system
- El estado de los trabajos debe ser
complete
. Si el estado de los trabajos eserroneous/pending
, esa es la causa del problema.
Resolución
- Si alguno de los trabajos tiene el estado
pending
oerroneous
, elimínelo con el siguiente comando:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Vuelve a ejecutar la instalación aplicando el archivo
overrides.yaml
:Actualiza
apigee-serving-cert
con Helm:helm install operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -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.Instala el gráfico:
helm upgrade operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
Causa: es posible que el trabajo apigee-resources-install del espacio de nombres apigee-system esté en un estado erróneo.
Diagnóstico
- Comprueba el estado de los trabajos del espacio de nombres
apigee-system
con el siguiente comando:kubectl get jobs -n apigee-system
- El estado de los trabajos debe ser
complete
. Si el estado de los trabajos eserroneous/pending
, esa es la causa del problema. La siguiente salida de ejemplo muestra que la tareaapigee-resources-install
se ha completado correctamente.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Resolución
- Si los trabajos tienen el estado
pending
oerroneous
, elimínalos con el siguiente comando:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Vuelve a ejecutar la instalación aplicando el archivo
overrides.yaml
:apigeectl apply -f overrides.yaml
Causa: se ha asignado un intervalo de direcciones IP incorrecto al balanceador de carga externo
Diagnóstico
- Comprueba la dirección IP configurada para el balanceador de carga en el archivo
istio- operator.yaml
. Por ejemplo, el siguiente fragmento muestra la ubicación en el archivoistio-operator.yaml
donde se configura 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 carga (indicado por el tipo) en el archivoistio-operator.yaml
. Durante la instalación de ASM, se crea un balanceador de carga 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 carga. - Ponte en contacto con tu equipo de redes y comprueba que la dirección IP configurada para
loadBalancerIP
sea correcta. Si no es correcta, el servicio de balanceador de carga no podrá enlazarse a la dirección IP. Esto hace que el servicioistio-ingressgateway
esté en el estadopending
para siempre.
Resolución
- Ponte en contacto 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 la
puerta de enlace de entrada de Apigee y aplica el archivo
overrides.yaml
:helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
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:
- El ID del proyecto de Google Cloud
- 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 otro proyecto de Google Cloud
- El archivo
overrides.yaml
- El archivo
Istio-operator .yaml
que se ha usado durante la instalación de ASM. - Recopila los registros de cada pod
istio-ingressgateway
del 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 del espacio de nombres
istio-system
:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Recoge la lista de servicios del espacio de nombres
istio-system
:kubectl get svc -n istio-system