Cette page explique comment résoudre les problèmes liés à Ingress dans Google Kubernetes Engine (GKE).
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.
Annotation incorrecte pour la classe Ingress
Symptôme
Lorsque vous créez un Ingress, l'erreur suivante peut s'afficher:
Missing one or more resources. If resource creation takes longer than expected, you might have an invalid configuration.
Causes probables
Lorsque vous avez créé l'entrée, vous avez peut-être mal configuré la classe Ingress dans le fichier manifeste.
Solution
Pour spécifier une classe Ingress, vous devez utiliser l'annotation kubernetes.io/ingress.class
. Vous ne pouvez pas spécifier un contrôleur GKE Ingress en utilisant spec.ingressClassName
.
- Pour déployer un équilibreur de charge d'application interne, utilisez l'annotation
kubernetes.io/ingress.class: gce-internal
. - Pour déployer un équilibreur de charge d'application externe, utilisez l'annotation
kubernetes.io/ingress.class: gce
.
Annotation incorrecte pour l'adresse IP statique
Symptôme
Lorsque vous configurez un Ingress externe pour qu'il utilise une adresse IP statique, l'erreur suivante peut s'afficher:
Error syncing to GCP: error running load balancer syncing routine: loadbalancer does not exist: the given static IP name doesn't translate to an existing static IP.
Causes probables
- Vous n'avez pas créé d'adresse IP externe statique avant de déployer lIngress.
- Vous n'utilisez pas l'annotation appropriée pour votre type d'équilibreur de charge.
Solution
Si vous configurez un Ingress externe:
- Réservez une adresse IP externe statique avant de déployer l'Ingress.
- Utilisez l'annotation
kubernetes.io/ingress.global-static-ip-name
sur votre ressource Ingress.
Si vous configurez un Ingress interne:
- Réservez une adresse IP interne statique régionale avant de déployer lIngress.
- Utilisez l'annotation
kubernetes.io/ingress.regional-static-ip-name
sur votre ressource Ingress.
L'adresse IP statique est déjà utilisée
Symptôme
L'erreur suivante peut s'afficher lorsque vous spécifiez une adresse IP statique pour provisionner votre ressource dIngress;entrée interne ou externe:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer does not exist:
googleapi: Error 409: IP_IN_USE_BY_ANOTHER_RESOURCE - IP '''' is already being used by another resource.
Causes probables
L'adresse IP statique est déjà utilisée par une autre ressource.
Erreur lors de la désactivation du protocole HTTP et de l'utilisation d'un certificat géré par Google
Symptôme
Si vous configurez un certificat SSL géré par Google et désactivez le trafic HTTP sur votre Ingress, le message d'erreur suivant s'affiche:
Error syncing to GCP: error running load balancer syncing
routine: loadbalancer does not exist:
googleapi: Error 404: The resource ''projects//global/sslPolicies/' was not found, notFound
Causes probables
Vous ne pouvez pas utiliser les annotations suivantes ensemble lorsque vous configurez l'Ingress:
networking.gke.io/managed-certificates
(pour associer le certificat géré par Google à un Ingress)kubernetes.io/ingress.allow-http: false
(pour désactiver le trafic HTTP)
Solution
Désactivez le trafic HTTP uniquement après que l'équilibreur de charge d'application externe a été entièrement programmé. Vous pouvez mettre à jour l'Ingress et ajouter l'annotation kubernetes.io/ingress.allow-http: false
au fichier manifeste.
Absence de sous-réseau proxy réservé pour un Ingress interne
Symptôme
Lorsque vous déployez un Ingress pour un équilibreur de charge d'application interne, l'erreur suivante peut s'afficher:
Error syncing to GCP: error running load balancer syncing routine:
loadbalancer does not exist: googleapi: Error 400: Invalid value for field 'resource.target': 'https://www.googleapis.com/compute/v1/projects//regions//targetHttpsProxies/'.
An active proxy-only subnetwork is required in the same region and VPC as
the forwarding rule.
Causes probables
Vous n'avez pas créé de sous-réseau proxy réservé avant de créer la ressource Ingress. Un sous-réseau proxy réservé est requis pour les équilibreurs de charge d'application internes.
Solution
Créez un sous-réseau proxy réservé avant de déployer l'Ingress interne.
La clé du certificat SSL est trop volumineuse
Symptôme
Si la taille de clé du certificat SSL de votre équilibreur de charge est trop importante, l'erreur suivante peut s'afficher:
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
Causes probables
Google Cloud est limité à 2 048 bits pour les clés de certificat SSL.
Solution
Réduisez la taille de la clé du certificat SSL à 2 048 bits ou moins.
Erreur lors de la création d'un ingress au niveau Standard
Symptôme
Si vous déployez un Ingress dans un projet avec le niveau de réseau par défaut du projet défini sur Standard, le message d'erreur suivant s'affiche:
Error syncing to GCP: error running load balancer syncing routine: load balancer 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
Solution
Configurez le niveau réseau par défaut du projet sur Premium.
Étapes suivantes
Si vous ne trouvez pas de solution à votre problème dans la documentation, consultez la section Obtenir de l'aide pour obtenir une aide supplémentaire, y compris des conseils sur les sujets suivants:
- En ouvrant une demande d'assistance en contactant l'assistance client Cloud.
- Obtenir de l'aide de la communauté en posant des questions sur StackOverflow et en utilisant la balise
google-kubernetes-engine
pour rechercher des problèmes similaires. Vous pouvez également rejoindre le canal Slack#kubernetes-engine
pour obtenir plus d'aide de la communauté. - Signaler des bugs ou des demandes de fonctionnalités à l'aide de l'outil public de suivi des problèmes