6 commentaires
Vérifie si ton application backend ferme la connexion avant que Nginx n'ait fini de lire la réponse. Augmente proxy_buffer_size dans tes annotations.
J'ai eu le même souci. Ajoute ceci dans tes annotations Ingress :
nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
nginx.ingress.kubernetes.io/proxy-buffer-size: "128k" Cela règle souvent les problèmes de buffer trop petits.
Merci, j'ai testé avec 128k mais ça persiste. Est-ce que cela pourrait être lié au keepalive côté backend ?
Regarde si ton backend ne fait pas de graceful shutdown trop rapide. Si le pod est supprimé pendant un rolling update, Nginx peut recevoir un RST.
Bonne piste. Vérifie la valeur de preStop dans ton manifeste de déploiement pour laisser le temps au pod de finir ses requêtes.
Effectivement, j'ai ajouté un sleep 10 dans le preStop et les 502 ont disparu lors des déploiements. C'était bien un problème de race condition lors du SIGTERM.
Laisser une réponse
Vous devez être connecté pour poster un message !
J'ai des erreurs
502 Bad Gatewayintermittentes sur mon Ingress Nginx quand le backend reçoit un pic de trafic. Mes logs indiquentupstream prematurely closed connection. J'ai vérifié leskeepalive_timeout, mais ça ne semble pas suffire. Une idée sur la configuration des buffers ou duproxy_read_timeout?