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'Ingress, 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 GKE Ingress à l'aide de 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 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 l'Ingress.
- 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 Ingress 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 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.
Sous-réseau proxy réservé manquant 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 clé du certificat SSL de votre équilibreur de charge est trop importante, le message d'erreur suivant 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 limite les clés de certificat SSL à 2 048 bits.
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 dont le niveau de réseau par défaut du projet est 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 réseau par défaut du projet sur Premium.