Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Sintomo
Potresti notare uno dei seguenti sintomi:
- Le applicazioni client ricevono errori di timeout come risposta alle chiamate API su Apigee hybrid.
- Si verificano errori come
Error from server (invalid)
oThe Job "apigee-resources-install" is invalid
durante l'applicazione della configurazione (overrides.yaml)
al cluster durante l'installazione di Apigee hybrid.
Messaggi di errore
Potresti notare 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 rilevati durante l'applicazione della configurazione (overrides.yaml) ai cluster
Durante l'applicazione della configurazione (file overrides.yaml
) ai cluster durante l'installazione, potresti notare uno dei seguenti errori:
Errore 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"
Errore 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,
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 per cui il servizio istio-ingressgateway
è in stato
pending
sono le seguenti:
Causa | Descrizione |
---|---|
Job in stato errato/in attesa nello spazio dei nomi istio-system | I job incomplete/erroneous nello spazio dei nomi istio-system potrebbero
causare lo stato pending permanente del servizio istio-ingressgateway
e l'impossibilità di eseguire il binding a un indirizzo IP esterno. |
Job apigee-resources-install in stato errato/in attesa nello spazio dei nomi apigee-system | I job incomplete nello spazio dei nomi apigee-system potrebbero causare un stato pending permanente del servizio istio- ingressgateway e l'impossibilità di eseguire il binding a un indirizzo IP esterno. |
Esiste un 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,
causando lo stato pending del servizio istio-ingressgateway
per sempre e l'impossibilità di eseguire il binding a un indirizzo IP esterno durante l'installazione.
|
Causa: job nello spazio dei nomi istio-system in stato errato/in attesa
Diagnosi
- Controlla lo stato dei job nello spazio dei nomi
istio-system
utilizzando 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
, è la causa del problema.
Risoluzione
- Se uno dei job è nello stato
pending
oerroneous
, eliminalo 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
:apigeectl apply -f overrides.yaml
Causa: il job apigee-resources-install nello spazio dei nomi apigee-system potrebbe essere in stato errato
Diagnosi
- Controlla lo stato dei job nello spazio dei nomi
apigee-system
utilizzando il seguente comando:kubectl get jobs -n apigee-system
- Lo stato dei job deve essere
complete
. Se lo stato dei job è in statoerroneous/pending
, è la causa del problema. L'output di esempio riportato di seguito mostra che il jobapigee-resources-install
è stato completato correttamente.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Risoluzione
- Se i job sono nello stato
pending
oerroneous
, eliminali utilizzando il seguente comando:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Esegui di nuovo l'installazione applicando il file
overrides.yaml
:apigeectl apply -f overrides.yaml
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, lo snippet seguente mostra la posizione nel fileistio-operator.yaml
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 per il bilanciatore del carico. - Rivolgiti al team di rete e verifica che l'indirizzo IP configurato per
loadBalancerIP
sia corretto. Se non è corretto, il servizio di bilanciamento del carico non potrà eseguire il binding all'indirizzo IP. Di conseguenza, il servizioistio-ingressgateway
rimane nello statopending
per sempre.
Risoluzione
- Collabora con il team di rete e configura l'indirizzo IP corretto nel file
istio- operator.yaml
. - Esegui di nuovo
l'installazione di ASM e applica il file
overrides.yaml
:apigeectl apply -f overrides.yaml
Deve raccogliere informazioni di diagnostica
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e poi contatta l'assistenza clienti Google Cloud:
- L'ID progetto Google Cloud
- Il nome dell'organizzazione Apigee hybrid
- Nome del cluster Kubernetes
- Nome del progetto Google Cloud se il cluster Kubernetes si trova in un progetto Google Cloud diverso
- Il file
overrides.yaml
- Il file
Istio-operator .yaml
utilizzato durante l'installazione di ASM. - Raccogli i log di ogni pod
istio-ingressgateway
nello spazio dei nomiistio-system
: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
- Raccogliere l'elenco dei servizi nello spazio dei nomi
istio-system
:kubectl get svc -n istio-system