Traitement des pods orphelins sur la plateforme de conteneurs Titus de Netflix

Problèmes d’ingénierie résolus par l’équipe Netflix
L’équipe d’ingénierie de Netflix a divulgué l’enquête, l’identification et la résolution du problème lié aux “pods orphelins” causant des inconvénients aux ingénieurs de Titus, mettant en lumière le parcours des kernel panics vers Kubernetes (k8s) et fournissant finalement aux opérateurs les outils nécessaires pour comprendre pourquoi certains noeuds disparaissent.
Défis liés aux “pods orphelins” sur Titus
Titus est une plateforme de gestion de conteneurs développée par Netflix et open-source en 2018. Elle est conçue pour exécuter des conteneurs à grande échelle dans le cloud et est spécifiquement adaptée pour répondre aux exigences uniques et aux défis du service de streaming massif, dynamique et à fort trafic de Netflix.
Résolution des problèmes liés aux “pods orphelins”
Les “pods orphelins”, bien qu’une minorité dans le système, posent un problème significatif aux utilisateurs d’applications par lots, qui doivent faire face à des incertitudes sans codes de retour clairs pour guider leurs décisions de réessayage. Leur disparition est due à celle de l’objet noeud Kubernetes sous-jacent. Afin d’améliorer l’expérience utilisateur, Titus utilise un contrôleur personnalisé pour maintenir un historique des objets Pod et Node, assurant la transparence. Cependant, l’absence d’une explication satisfaisante pour la perte de l’agent a conduit à une enquête approfondie sur les causes profondes.
Améliorations apportées par Titus
Différentes raisons peuvent expliquer la disparition des noeuds, en particulier dans les environnements cloud. Pour répondre à cela, l’équipe d’ingénierie de Neflix introduit une annotation pour capturer les raisons de terminaison, fournissant des informations pour comprendre les disparitions de noeuds.
Dealing with Kernel Panics and Solutions
La gestion des kernel panics présente un défi unique, étant donné les options limitées disponibles. Ainsi, Titus a implémenté une solution en utilisant le module netconsole, permettant à la plateforme de capturer des informations vitales même en cas de défaillances catastrophiques.
Mesures mises en place par Titus
La dernière étape consiste à se connecter à Kubernetes et à implémenter un contrôleur pour écouter les paquets UDP netconsole, identifier les kernel panics et associer ces derniers aux objets de noeuds k8s, annoter et supprimer les pods associés et les noeuds en panique.
Les bénéfices des améliorations de Titus
Grâce à ces améliorations, Titus a considérablement renforcé ses capacités, assurant une expérience plus fluide pour les ingénieurs et les utilisateurs d’applications par lots.
Source : www.infoq.com
