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 créez l&#Ingress, il se peut que vous ayez 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 <Name of load balancer> does not exist: the given static IP name <Static IP> doesn't translate to an existing static IP.
Causes probables
- Vous n'avez pas créé d'adresse IP externe statique avant de déployer l&#Ingress.
- Vous n'utilisez pas la bonne annotation 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 d&#Ingress;entrée interne ou externe :
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.
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 que vous désactivez le trafic HTTP sur votre Ingress, l'erreur suivante s'affiche :
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
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 objet Ingress)kubernetes.io/ingress.allow-http: false
(pour désactiver le trafic HTTP)
Solution
Ne désactivez le trafic HTTP qu'une fois 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 <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.
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 la clé du certificat SSL de votre équilibreur de charge est trop grande, 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'une 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 <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
Solution
Configurez le niveau de 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 Obtenir de l'aide pour obtenir une assistance supplémentaire, y compris des conseils sur les sujets suivants :
- Ouvrez une demande d'assistance en contactant le service client Google Cloud.
- Obtenir de l'aide de la communauté en posant des questions sur Stack Overflow et en utilisant le tag
google-kubernetes-engine
pour rechercher des problèmes similaires. Vous pouvez également rejoindre le canal Slack#kubernetes-engine
pour obtenir de l'aide auprès de la communauté. - Signaler des bugs ou demander des fonctionnalités à l'aide de l'outil public de suivi des problèmes.