Résoudre les problèmes liés à GKE Ingress


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:

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.