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 invalidlors de l'application de la configuration (overrides.yaml) au cluster pendant l'installation hybride.
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
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"
Erreur #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,
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
pendingouerroneous, 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:Mettez à jour
apigee-serving-certà l'aide de Helm:helm install operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE \ --dry-run=server
Veillez à inclure tous les paramètres affichés, y compris
--atomic, afin que l'action soit annulée en cas d'échec.Installez le chart :
helm upgrade operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
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-installa 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
pendingouerroneous, 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.yamldans lequel l'adresse IP est configurée :-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- Le service
istio-ingressgatewayest 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
loadBalancerIPest 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-ingressgatewayreste 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 de la
passerelle d'entrée Apigee et appliquez le fichier
overrides.yaml:helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
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 .yamlutilisé lors de l'installation d'ASM. - Collectez les journaux de chaque pod
istio-ingressgatewaydans 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