nginx.ingress.kubernetes.io/*. Elles ne font strictement rien car notre ingress controller est Traefik. Cette page explique pourquoi ces annotations sont inertes, et comment obtenir le même comportement avec la syntaxe Traefik correcte.
Pourquoi elles sont sans effet
Lorsqu’une annotation d’ingress n’est pas reconnue par le controller actif, elle est simplement ignorée. Kubernetes ne lève pas d’erreur. Le résultat est un fichier de valeurs qui semble configurer quelque chose, mais qui en réalité ne change rien au comportement du trafic. Cela peut masquer des problèmes de production si l’application dépendait d’un timeout, d’une limite de taille ou d’un en-tête CORS.Annotations couramment vues
Créer un Middleware Traefik
Pour obtenir un comportement équivalent ànginx.ingress.kubernetes.io/enable-cors, créez un objet Middleware Traefik dans le même namespace que votre application.
Middleware CORS
buffering pour la taille des requêtes, replacePathRegex pour la réécriture d’URL, ou redirectScheme pour forcer HTTPS. Consultez la documentation Traefik pour la liste complète des types de Middleware.
Référencer le Middleware depuis l’Ingress
Une fois le Middleware créé, référencez-le dans votre ressource Ingress via l’annotationtraefik.ingress.kubernetes.io/router.middlewares.
Ingress avec middleware
Le format de l’annotation est
<namespace>-<middleware-name>@kubernetescrd. Le séparateur est un tiret, et le suffixe @kubernetescrd indique à Traefik que la ressource provient du CRD Kubernetes.