Mémoire de maîtrise (2023)
Accès restreint: Personnel autorisé jusqu'au 10 mai 2025 Conditions d'utilisation: Tous droits réservés |
Résumé
Ce mémoire explore la complexité inhérente à la gestion des performances des applications dans un environnement Kubernetes, un orchestrateur de conteneurs largement adopté dans l’industrie. Dans ce contexte, l’unité la plus petite qui peut être orchestrée est désignée comme un Pod, qui regroupe un ensemble de conteneurs partageant la même adresse IP et système de fichiers. L’objectif est d’identifier et résoudre les problèmes de performance au démarrage et à l’exécution des Pods. Notre travail met en lumière les interactions entre la couche d’orchestration (Kubernetes) et la couche du système d’exploitation (noyau Linux). Nous avons formulé l’hypothèse suivante : La visualisation des cycles de vie des déploiements et de leur consommation de ressources, provenant des traces du noyau et de l’orchestrateur, améliore considérablement l’observabilité du système. Cette stratégie intégrée vise à diagnostiquer précisément et résoudre efficacement les problèmes de performance rencontrés. Les méthodes expérimentales employées comprennent l’instrumentation du noyau Linux et de Kubernetes, la collecte et l’analyse des traces, ainsi que la création de visualisations pour interpréter les données collectées. Ces méthodes ont permis de mettre en lumière les étapes critiques du cycle de vie des Pods qui contribuent aux retards dans le démarrage et l’exécution des Pods.
Abstract
The thesis delves into the inherent complexity of managing application performance within a Kubernetes environment, a widely adopted container orchestrator in the industry. In this context, the smallest unit that can be orchestrated is referred to as a Pod, which encompasses a set of containers sharing the same IP address and file system. The primary aim is to identify and address performance issues that may arise during Pod startup and during their runtime, shedding light on the interactions between the orchestration layer (Kubernetes) and the operating system layer (Linux kernel). We have formulated the following hypothesis: Visualizing the life cycles of deployments and their resource consumption, derived from the traces of both the kernel and the orchestrator, significantly enhances system observability. This integrated strategy aims to diagnose accurately and resolve effectively the performance issues encountered. The experimental methods employed include the instrumentation of the Linux kernel and Kubernetes, the collection and analysis of traces, as well as the creation of visualizations to interpret the collected data. These methods helped to highlight the critical stages of the Pod lifecycle that contribute to delays in Pod startup and execution. The analysis of the results revealed that our approach can effectively identify the phases that slow down Pod deployment, and provides precious insights into the causes of such delays, be it CPU throttling, resource contention, or lock contention. Several visualizations were created to illustrate resource usage, the impact of CPU throttling, and resource contention on Pod performance.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Michel Dagenais et Heng Li |
URL de PolyPublie: | https://publications.polymtl.ca/56735/ |
Université/École: | Polytechnique Montréal |
Date du dépôt: | 10 mai 2024 10:45 |
Dernière modification: | 12 oct. 2024 02:30 |
Citer en APA 7: | Saint-Cyr, B. (2023). Traçage multi-niveaux d'orchestrateur d'application conteneurisée [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/56735/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements