Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.
Symptom
Möglicherweise tritt eines der folgenden Symptome auf:
- Die Clientanwendungen erhalten Zeitüberschreitungsfehler als Antwort auf API-Aufrufe in Apigee Hybrid.
- Sie beobachten Fehler wie
Error from server (invalid)
oderThe Job "apigee-resources-install" is invalid
, wenn Sie die Konfiguration (overrides.yaml)
während der Apigee Hybrid-Installation auf den Cluster anwenden.
Fehlermeldungen
Möglicherweise tritt einer der folgenden Fehler auf:
Fehlerantwort auf API-Aufrufe
Die API-Anfragen in Apigee Hybrid können mit der folgenden Fehlermeldung fehlschlagen:
* 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
Beim Anwenden der Konfiguration (overrides.yaml) auf Cluster beobachtete Fehler
Während der Installation kann einer der folgenden Fehler auftreten, wenn Sie die Konfiguration (Datei overrides.yaml
) auf Cluster anwenden:
Fehler Nr. 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"
Fehler Nr. 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,
Mögliche Ursachen
Diese Fehler können auftreten, wenn der Dienst istio-ingressgateway
den Status pending
hat und nicht an eine externe IP-Adresse gebunden werden kann, wie unten dargestellt:
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
Mögliche Gründe dafür, dass sich der istio-ingressgateway
-Dienst im Status pending
befindet:
Ursache | Beschreibung |
---|---|
Jobs im Status "fehlerhaft"/"ausstehend" im istio-system-Namespace | Die incomplete/erroneous -Jobs im istio-system -Namespace können dazu führen, dass sich der istio-ingressgateway -Dienst für immer im Status pending befindet und nicht an eine externe IP-Adresse gebunden werden kann. |
apigee-resources-install-Job im Status "fehlerhaft"/"ausstehend" im apigee-system-Namespace | Die incomplete -Jobs im apigee-system -Namespace können dazu führen, dass sich der istio- ingressgateway -Dienst für immer im Status pending befindet und nicht an eine externe IP-Adresse gebunden werden kann. |
Dem externen Load-Balancer wurde ein falscher IP-Adressbereich zugewiesen | In der Datei istio-operator.yaml ist möglicherweise ein falscher IP-Adressbereich konfiguriert, sodass der istio-ingressgateway -Dienst für immer den Status pending erhält und sich während der Installation nicht an eine externe IP-Adresse binden kann.
|
Ursache: Jobs im istio-system-Namespace im Status "fehlerhaft"/"ausstehend"
Diagnose
- Prüfen Sie den Status der Jobs im
istio-system
-Namespace mit dem folgenden Befehl:kubectl get jobs -n istio-system
- Der Status der Jobs muss
complete
lauten. Wenn der Status der Jobserroneous/pending
lautet, ist dies die Ursache des Problems.
Lösung
- Wenn einer der Jobs den Status
pending
odererroneous
hat, löschen Sie ihn mit dem folgenden Befehl:kubectl -n istio-system delete job JOB_NAME_FROM_STEP_1
- Führen Sie die Installation noch einmal aus, indem Sie die Datei
overrides.yaml
anwenden:apigeectl apply -f overrides.yaml
Ursache: Der apigee-resources-install-Job im apigee-system-Namespace kann sich im Status "fehlerhaft" befinden
Diagnose
- Prüfen Sie den Status der Jobs im
apigee-system
-Namespace mit dem folgenden Befehl:kubectl get jobs -n apigee-system
- Der Status der Jobs muss
complete
lauten. Wenn der Status der Jobserroneous/pending
lautet, ist dies die Ursache des Problems. Die folgende Beispielausgabe zeigt, dass der Jobapigee-resources-install
erfolgreich abgeschlossen wurde.kubectl get jobs -n apigee-system NAME COMPLETIONS DURATION AGE apigee-resources-install 1/1 23s 16d
Lösung
- Wenn die Jobs den Status
pending
odererroneous
haben, löschen Sie sie mit dem folgenden Befehl:kubectl -n apigee-system delete job JOB_NAME_FROM_STEP_1
- Führen Sie die Installation noch einmal aus, indem Sie die Datei
overrides.yaml
anwenden:apigeectl apply -f overrides.yaml
Ursache: Dem externen Load-Balancer wurde ein falscher IP-Adressbereich zugewiesen
Diagnose
- Prüfen Sie die für den Load-Balancer konfigurierte IP-Adresse in der Datei
istio- operator.yaml
. Das folgende Snippet zeigt beispielsweise die Stelle in der Dateiistio-operator.yaml
, an der die IP-Adresse konfiguriert ist:-name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer loadBalancerIP: 10.195.24.23
- Der Dienst
istio-ingressgateway
wird in der Dateiistio-operator.yaml
als Load-Balancer konfiguriert (dargestellt durch den Typ). Während der ASM-Installation wird ein Load-Balancer mit der konfigurierten IP-Adresse erstellt und zur Kommunikation mit dem Dienstistio- ingressgateway
verbunden. Daher sollte die konfigurierte IP-Adresse korrekt und für den Load-Balancer reserviert sein. - Wenden Sie sich an Ihr Netzwerkteam und prüfen Sie, ob die für
loadBalancerIP
konfigurierte IP-Adresse korrekt ist. Wenn sie falsch ist, kann der Load-Balancer-Dienst nicht an die IP-Adresse gebunden werden. Dadurch bleibt der Dienstistio-ingressgateway
dauerhaft im Statuspending
.
Lösung
- Arbeiten Sie mit Ihrem Netzwerkteam zusammen und konfigurieren Sie die richtige IP-Adresse in der Datei
istio- operator.yaml
. - Führen Sie die ASM-Installation noch einmal aus und wenden Sie die Datei
overrides.yaml
an:apigeectl apply -f overrides.yaml
Erfassen von Diagnoseinformationen erforderlich
Wenn das Problem auch nach Befolgen der obigen Anweisungen weiterhin besteht, sammeln Sie die folgenden Diagnoseinformationen und wenden Sie sich dann an Google Cloud Customer Care:
- Die Google Cloud-Projekt-ID
- Der Name der Apigee Hybrid-Organisation
- Kubernetes-Clustername
- Google Cloud-Projektname, wenn sich der Kubernetes-Cluster in einem anderen Google Cloud-Projekt befindet
- Datei
overrides.yaml
- Die Datei
Istio-operator .yaml
, die während der ASM-Installation verwendet wird - Erfassen Sie die Logs von jedem
istio-ingressgateway
-Pod imistio-system
-Namespace:kubectl logs NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.log
- Erfassen Sie die Beschreibung der einzelnen Pods im
istio-system
-Namespace:kubectl describe pod NAME_OF_ISTIO_INGRESSGATEWAY_POD -n istio-system > /tmp/NAME_OF_ISTIO_INGRESSGATEWAY_POD.yaml
- Erfassen Sie die Liste der Dienste im
istio-system
-Namespace:kubectl get svc -n istio-system