mTLS Istio 503 intermitents après mise à jour cluster

qriou 31/05/2025
RÉSOLU
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

bonjour à tous après la dernière mise à jour de notre cluster k8s et istio vers 1.18 on a des 503 randomly sur certains calls entre services qui utilisent mTLS les logs istio-proxy sont pas super clairs ça parle de handshake failed ou de no healthy upstream. avant la maj c'était nickel

# un bout des logs istio-proxy
[2023-10-27T10:00:00.123456Z] "GET /api/data HTTP/1.1" 503 - - "-" 0 92 10 9 "-" "curl/7.81.0" "a1b2c3d4e5" "10.42.0.1:8080" "10.42.0.2:9080" PASSTHROUGH_CLUSTER - -
31/05/2025 à 04:22

16 commentaires

helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

503 avec mTLS qui foire ça sent le certificat invalide ou expiré entre services. t'as vérifié les secrets kubernetes pour les certs istio c'est géré par citadel/istiod non

31/05/2025 à 22:55
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

oui istiod gère ça les secrets sont à jour selon kubectl get secret istio.default -o yaml | grep 'creationTimestamp' ça correspond aux dates de rotation

Modifié le 23/05/2026 à 16:20
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

ok donc pas un cert expiré. est-ce que tu as des gateways ou des sidecars qui n'ont pas la bonne config de trust domain ou qui n'ont pas pu refresh leurs secrets

02/06/2025 à 21:05
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

on a vérifié le trust domain c'est bon. par contre certains pods ont été redémarrés et d'autres non est-ce que ça peut être un souci de versioning entre anciens et nouveaux proxies

03/06/2025 à 15:42
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

absolument ça c'est une piste sérieuse. si tu as des proxys qui tournent encore avec une config de l'ancienne version ou qui n'ont pas bien rechargé les certs après la maj ça peut causer des problèmes de négociation TLS

04/06/2025 à 15:37
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

donc la solution serait un redémarrage complet de tous les pods ou un istioctl proxy-config secret pour forcer le refresh

Modifié le 23/05/2026 à 16:20
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

un redémarrage des workloads est plus safe pour s'assurer que tous les sidecars ont bien la dernière config et les certs. ou si tu peux utiliser rollout restart deployment sur tous les deployments qui utilisent le mesh

Modifié le 23/05/2026 à 16:20
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

ok on va faire un `kubectl rollout restart deployment -n ` sur les namespaces concernés. ça va impacter la prod mais au moins ça va nettoyer

07/06/2025 à 11:58
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

pendant le redémarrage surveille attentivement les logs des istio-proxy dans les pods qui redémarrent. tu peux augmenter le niveau de log de l'envoy pour avoir plus de détails sur le handshake TLS `istioctl proxy-config log --level tls:debug`

Modifié le 23/05/2026 à 16:20
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

bonne idée pour le debug level. on a fait un rollout restart sur les services impactés. les 503 sont beaucoup moins fréquents maintenant mais persistent encore un peu sur un service précis

09/06/2025 à 05:54
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

un service précis ? est-ce que ce service a une config spéciale un peerauthentication ou un destinationrule avec une politique mtls spécifique qui est peut-être en conflit avec la nouvelle version d'istio

Modifié le 23/05/2026 à 16:20
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

bingo ! on a un DestinationRule sur ce service qui forçait TLS_AUTO_CLIENT au lieu de ISTIO_MUTUAL pour une raison obscure une relique de l'ancienne config. j'ai corrigé ça

Modifié le 23/05/2026 à 16:20
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

ah voilà ! les reliques de config c'est la plaie en service mesh surtout après une upgrade majeure. tls_auto_client c'est pour du trafic externe ou non-mesh pas pour la communication intra-mesh qui doit être istio_mutual

Modifié le 23/05/2026 à 16:20
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

clairement. après avoir corrigé le DestinationRule et un dernier rollout restart tout est rentré dans l'ordre plus aucun 503. merci infiniment pour l'aide j'aurais pas pensé à cette config déterrée

Modifié le 23/05/2026 à 16:20
helene93
Membre Actif Secouriste
Avatar de helene93
helene93
Membre Actif Secouriste

nickel ! good job. les erreurs mTLS sont les plus chieuses à debugger quand les logs sont pas assez verbaux

13/06/2025 à 08:34
qriou
Auteur Actif
Avatar de qriou
qriou
Auteur Actif

totalement. la prochaine fois je regarderai les DestinationRule en premier. thx encore

Modifié le 23/05/2026 à 16:20

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire