Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.
Sintomo
Potresti osservare uno dei seguenti sintomi:
- Le applicazioni client ricevono errori di timeout come risposta alle chiamate API su Apigee hybrid.
- Durante l'applicazione della configurazione
(
overrides.yaml) al cluster durante l'installazione di hybrid, vengono visualizzati errori comeError from server (invalid)oThe Job "apigee-resources-install" is invalid.
Messaggi di errore
Potresti osservare uno dei seguenti errori:
Risposta di errore alle chiamate API
Le richieste API su Apigee hybrid potrebbero non riuscire con il seguente messaggio di errore:
* 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
Errori osservati durante l'applicazione della configurazione (overrides.yaml) ai cluster
Durante l'installazione, potresti osservare uno dei seguenti errori durante l'applicazione della configurazione
(overrides.yaml file) ai cluster:
Errore n. 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"
Errore 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,
Cause possibili
Questi errori possono verificarsi se il servizio istio-ingressgateway è in stato
pending e non è in grado di eseguire il binding a un indirizzo IP esterno, come mostrato di seguito:
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 possibili cause dello stato
pending del servizio istio-ingressgateway sono le seguenti:
| Causa | Descrizione |
|---|---|
| Job in stato di errore/in attesa nello spazio dei nomi istio-system | I job incomplete/erroneous nello spazio dei nomi istio-system potrebbero
far sì che il servizio istio-ingressgateway rimanga in stato pending per sempre
e non sia in grado di eseguire il binding a un indirizzo IP esterno. |
| Intervallo di indirizzi IP errato assegnato al bilanciatore del carico esterno | Nel file istio-operator.yaml potrebbe essere configurato un intervallo di indirizzi IP errato, che fa sì che il servizio istio-ingressgateway entri in stato pending per sempre e non sia in grado di eseguire il binding a un indirizzo IP esterno durante l'installazione.
|
Causa: job nello spazio dei nomi istio-system in stato di errore/in attesa
Diagnosi
- Controlla lo stato dei job nello spazio dei nomi
istio-systemutilizzando il seguente comando:kubectl get jobs -n istio-system
- Lo stato dei job deve essere
complete. Se lo stato dei job è in uno statoerroneous/pending, questa è la causa del problema.
Risoluzione
- Se uno dei job è in stato
pendingoerroneous, eliminali utilizzando il seguente comando:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Esegui di nuovo l'installazione applicando il file
overrides.yaml:Aggiorna
apigee-serving-certutilizzando Helm:helm install operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE \ --dry-run=server
Assicurati di includere tutte le impostazioni mostrate, incluso
--atomic, in modo che l'azione venga ripristinata in caso di errore.Installa il grafico:
helm upgrade operator apigee-operator/ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
Causa: intervallo di indirizzi IP errato assegnato al bilanciatore del carico esterno
Diagnosi
- Controlla l'indirizzo IP configurato per il bilanciatore del carico nel file
istio- operator.yaml. Ad esempio, il seguente snippet mostra la posizione nelistio-operator.yamlfile in cui è configurato l'indirizzo IP:-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- Il servizio
istio-ingressgatewayè configurato come bilanciatore del carico (indicato dal tipo) nel fileistio-operator.yaml. Durante l'installazione di ASM, viene creato un bilanciatore del carico con l'indirizzo IP configurato e collegato per comunicare con il servizioistio- ingressgateway. Pertanto, l'indirizzo IP configurato deve essere corretto e riservato al bilanciatore del carico. - Coinvolgi il tuo team di rete e verifica che l'indirizzo IP configurato per
loadBalancerIPsia corretto. Se non è corretto, il servizio del bilanciatore del carico non sarà in grado di eseguire il binding all'indirizzo IP. In questo modo, il servizioistio-ingressgatewayrimane in statopendingper sempre.
Risoluzione
- Collabora con il tuo team di rete e configura l'indirizzo IP corretto nel file
istio- operator.yaml. - Esegui di nuovo l'installazione del
gateway in entrata di Apigee e applica il
overrides.yamlfile:helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE
Informazioni di diagnostica da raccogliere
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e contatta l'assistenza clienti Google Cloud:
- L'ID progetto Google Cloud
- Il nome dell'organizzazione Apigee hybrid
- Nome cluster Kubernetes
- Nome progetto Google Cloud se il cluster Kubernetes si trova in un progetto Google Cloud diverso
- Il file
overrides.yaml - Il file
Istio-operator .yamlutilizzato durante l'installazione di ASM. - Raccogli i log da ogni
istio-ingressgatewaypod nelloistio-systemspazio dei nomi:kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Raccogli la descrizione di ogni pod nello spazio dei nomi
istio-system:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Raccogli l'elenco dei servizi nello spazio dei nomi
istio-system:kubectl get svc -n istio-system