Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.
Symptôme
Vous pouvez observer l'un des symptômes suivants :
- Les applications clientes reçoivent des erreurs d'expiration de délai en réponse aux appels d'API dans Apigee hybrid.
- Vous observez des erreurs telles que
Error from server (invalid)
ouThe Job "apigee-resources-install" is invalid
lors de l'application de la configuration (overrides.yaml)
) au cluster pendant l'installation d'Apigee hybrid.
Messages d'erreur
Vous pouvez rencontrer l'une des erreurs suivantes :
Réponse d'erreur aux appels d'API
Les requêtes API sur Apigee hybrid peuvent échouer avec le message d'erreur suivant :
* 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
Erreurs observées lors de l'application de la configuration (overrides.yaml) aux clusters.
Vous pouvez observer l'une des erreurs suivantes lors de l'application de la configuration (fichier overrides.yaml
) aux clusters lors de l'installation :
Erreur #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"
Erreur #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,
Causes possibles
Ces erreurs peuvent se produire si le service istio-ingressgateway
est à l'état pending
et ne peut pas être associé à une adresse IP externe comme indiqué ci-dessous :
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
Le service istio-ingressgateway
peut présenter l'état pending
pour les raisons suivantes :
Cause | Description |
---|---|
Tâches dans un état d'erreur/en attente dans l'espace de noms istio-system | Les tâches incomplete/erroneous dans l'espace de noms istio-system peuvent faire basculer le service istio-ingressgateway vers l'état pending indéfiniment et empêcher sa liaison à une adresse IP externe. |
apigee-resources-install job in erroneous/pending state in apigee-system namespace | Les tâches incomplete dans l'espace de noms apigee-system peuvent faire basculer le service istio- ingressgateway vers l'état pending indéfiniment et empêcher sa liaison à une adresse IP externe. |
Plage d'adresses IP incorrecte attribuée à l'équilibreur de charge externe | Une plage d'adresses IP incorrecte peut être configurée dans le fichier istio-operator.yaml et faire basculer le service istio-ingressgateway vers l'état pending indéfiniment, ce qui empêche la liaison à une adresse IP externe pendant l'installation.
|
Cause : des tâches dans l'espace de noms istio-system sont en état d'erreur/en attente.
Diagnostic
- Vérifiez l'état des tâches dans l'espace de noms
istio-system
à l'aide de la commande suivante :kubectl get jobs -n istio-system
- L'état des tâches doit être
complete
. Si l'état des tâches esterroneous/pending
, il s'agit de la cause du problème.
Solution
- Si l'une des tâches présente l'état
pending
ouerroneous
, supprimez-la à l'aide de la commande suivante :kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Réexécutez l'installation en appliquant le fichier
overrides.yaml
:apigeectl apply -f overrides.yaml
Cause : la tâche apigee-resources-install dans l'espace de noms apigee-system peut se trouver dans un état d'erreur.
Diagnostic
- Vérifiez l'état des tâches dans l'espace de noms
apigee-system
à l'aide de la commande suivante :kubectl get jobs -n apigee-system
- L'état des tâches doit être
complete
. Si l'état des tâches esterroneous/pending
, il s'agit de la cause du problème. L'exemple de résultat suivant montre que la tâcheapigee-resources-install
a abouti.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Solution
- Si les tâches sont à l'état
pending
ouerroneous
, supprimez-les à l'aide de la commande suivante :kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Réexécutez l'installation en appliquant le fichier
overrides.yaml
:apigeectl apply -f overrides.yaml
Cause : une plage d'adresses IP incorrecte est attribuée à l'équilibreur de charge externe.
Diagnostic
- Vérifiez l'adresse IP configurée pour l'équilibreur de charge dans le fichier
istio- operator.yaml
. Par exemple, l'extrait suivant indique l'emplacement du fichieristio-operator.yaml
dans lequel l'adresse IP est configurée :-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- Le service
istio-ingressgateway
est configuré en tant qu'équilibreur de charge (indiqué par type) dans le fichieristio-operator.yaml
. Lors de l'installation d'ASM, un équilibreur de charge est créé avec l'adresse IP configurée et connecté de manière à communiquer avec le serviceistio- ingressgateway
. Par conséquent, l'adresse IP configurée doit être correcte et réservée à l'équilibreur de charge. - Contactez votre équipe réseau et vérifiez que l'adresse IP configurée pour
loadBalancerIP
est correcte. Si l'adresse est incorrecte, le service d'équilibrage de charge ne pourra pas s'associer à l'adresse IP. Dans une telle situation, le serviceistio-ingressgateway
reste indéfiniment à l'étatpending
.
Solution
- Collaborez avec votre équipe réseau et configurez l'adresse IP correcte dans le fichier
istio- operator.yaml
. - Réexécutez l'installation d'ASM et appliquez le fichier
overrides.yaml
:apigeectl apply -f overrides.yaml
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 Google Cloud Customer Care :
- L'ID de projet Google Cloud
- Nom de l'organisation Apigee Hybrid
- Nom du cluster Kubernetes
- Nom du projet Google Cloud si le cluster Kubernetes se trouve dans un autre projet Google Cloud.
- Le fichier
overrides.yaml
- Le fichier
Istio-operator .yaml
utilisé lors de l'installation d'ASM. - Collectez les journaux de chaque pod
istio-ingressgateway
dans l'espace de nomsistio-system
:kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Collectez la description de chaque pod dans l'espace de noms
istio-system
:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Collectez la liste des services dans l'espace de noms
istio-system
:kubectl get svc -n istio-system