Auf dieser Seite wird beschrieben, wie Sie Probleme im Zusammenhang mit Ingress in der Google Kubernetes Engine (GKE) beheben.
Wenn Sie weitere Unterstützung benötigen, wenden Sie sich an den Cloud Customer Care.
Falsche Anmerkung für die Ingress-Klasse
Symptom
Beim Erstellen eines Ingress wird möglicherweise der folgende Fehler angezeigt:
Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.
Mögliche Ursachen
Möglicherweise haben Sie beim Erstellen des Ingress die Ingress-Klasse im Manifest falsch konfiguriert.
Lösung
Wenn Sie eine Ingress-Klasse angeben möchten, müssen Sie die Annotation kubernetes.io/ingress.class
verwenden. Sie können einen GKE-Ingress nicht mit spec.ingressClassName
angeben.
- Verwenden Sie die Anmerkung
kubernetes.io/ingress.class: gce-internal
, um einen internen Application Load Balancer bereitzustellen. - Verwenden Sie die Anmerkung
kubernetes.io/ingress.class: gce
, um einen externen Application Load Balancer bereitzustellen.
Falsche Anmerkung für die statische IP-Adresse
Symptom
Wenn Sie ein externes Ingress für die Verwendung einer statischen IP-Adresse konfigurieren, wird möglicherweise die folgende Fehlermeldung angezeigt:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer <Name of load balancer> does not exist: the given static IP name <Static IP> doesn't translate to an existing static IP.
Mögliche Ursachen
- Sie haben vor der Bereitstellung des Ingress keine statische externe IP-Adresse erstellt.
- Sie verwenden nicht die richtige Anmerkung für Ihren Load Balancer-Typ.
Lösung
Wenn Sie einen externen Ingress konfigurieren:
- Reservieren Sie eine statische externe IP-Adresse, bevor Sie die Ingress-Ressource bereitstellen.
- Verwenden Sie die Annotation
kubernetes.io/ingress.global-static-ip-name
für Ihre Ingress-Ressource.
Wenn Sie einen internen Ingress konfigurieren:
- Reservieren Sie eine regionale statische interne IP-Adresse, bevor Sie den Ingress bereitstellen.
- Verwenden Sie die Annotation
kubernetes.io/ingress.regional-static-ip-name
für Ihre Ingress-Ressource.
Statische IP-Adresse wird bereits verwendet
Symptom
Wenn Sie eine statische IP-Adresse angeben, um Ihre interne oder externe Ingress-Ressource bereitzustellen, wird möglicherweise der folgende Fehler angezeigt:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <LB name> does not exist:
googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP ''<IP address>'' is already being used by another resource.
Mögliche Ursachen
Die statische IP-Adresse wird bereits von einer anderen Ressource verwendet.
Fehler beim Deaktivieren von HTTP und Verwenden eines von Google verwalteten Zertifikats
Symptom
Wenn Sie ein von Google verwaltetes SSL-Zertifikat konfigurieren und den HTTP-Traffic für Ihren Ingress deaktivieren, wird der folgende Fehler angezeigt:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer <Load Balancer name> does not exist:
googleapi: Error 404: The resource ''projects/<Project>/global/sslPolicies/<Policy name>' was not found, notFound
Mögliche Ursachen
Die folgenden Anmerkungen können nicht gleichzeitig verwendet werden, wenn Sie den Ingress konfigurieren:
networking.gke.io/managed-certificates
(zum Verknüpfen des von Google verwalteten Zertifikats mit einem Ingress)kubernetes.io/ingress.allow-http: false
(zum Deaktivieren von HTTP-Traffic)
Lösung
Deaktivieren Sie den HTTP-Traffic erst, wenn der externe Application Load Balancer vollständig programmiert ist. Sie können den Ingress aktualisieren und dem Manifest die Anmerkung kubernetes.io/ingress.allow-http: false
hinzufügen.
Für einen internen Ingress fehlt ein Nur-Proxy-Subnetz
Symptom
Wenn Sie einen Ingress für einen internen Application Load Balancer bereitstellen, wird möglicherweise der folgende Fehler angezeigt:
Error syncing to GCP: error running load balancer syncing routine:
loadbalancer <LB name> does not exist: googleapi: Error 400: Invalid value for field 'resource.target': 'https://www.googleapis.com/compute/v1/projects/<Project ID>/regions/<Region>/targetHttpsProxies/<Target proxy>'.
An active proxy-only subnetwork is required in the same region and VPC as
the forwarding rule.
Mögliche Ursachen
Sie haben kein Nur-Proxy-Subnetz erstellt, bevor Sie die Ingress-Ressource erstellt haben. Für interne Application Load Balancer ist ein Nur-Proxy-Subnetz erforderlich.
Lösung
Erstellen Sie ein Nur-Proxy-Subnetz, bevor Sie den internen Ingress bereitstellen.
SSL-Zertifikatschlüssel ist zu groß
Symptom
Wenn die Schlüsselgröße des SSL-Zertifikats Ihres Load Balancers zu groß ist, wird möglicherweise der folgende Fehler angezeigt:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer gky76k70-load-test-trillian-api-ingress-fliismmb does not exist: Cert creation failures - k8s2-cr-gky76k70-znz6o1pfu3tfrguy-f9be3a4abbe573f7 Error:googleapi: Error 400: The SSL key is too large., sslCertificateKeyTooLarge
Mögliche Ursachen
InGoogle Cloud gilt ein Limit von 2.048 Bit für SSL-Zertifikatschlüssel.
Lösung
Reduzieren Sie die Größe des SSL-Zertifikatschlüssels auf maximal 2.048 Bit.
Fehler beim Erstellen eines Ingress in der Standardstufe
Symptom
Wenn Sie einen Ingress in einem Projekt bereitstellen, in dem die Standardnetzwerkstufe des Projekts auf „Standard“ gesetzt ist, wird die folgende Fehlermeldung angezeigt:
Error syncing to GCP: error running load balancer syncing routine: load balancer <LB Name> does not exist: googleapi: Error 400: STANDARD network tier (the project''s default network tier) is not supported: STANDARD network tier is not supported for global forwarding rule., badRequest
Lösung
Konfigurieren Sie die Standard-Netzwerkstufe des Projekts auf „Premium“.