Aller au contenu principal
Version : Suivant

Présentation de Chaos Mesh

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Ce document décrit les concepts, cas d'usage, avantages clés et l'architecture de Chaos Mesh.

Présentation de Chaos Mesh

Chaos Mesh est une plateforme open source de Chaos Engineering cloud-native. Il propose divers types de simulation de pannes et offre des capacités étendues pour orchestrer des scénarios de défaillance.

Avec Chaos Mesh, vous pouvez simuler commodément différentes anomalies susceptibles de survenir en environnement de développement, test ou production, et identifier des problèmes potentiels dans le système. Pour abaisser le seuil d'entrée dans un projet de Chaos Engineering, Chaos Mesh propose une interface visuelle. Vous pouvez facilement concevoir vos scénarios de chaos via l'interface web et suivre l'état des expériences.

Avantages clés

En tant que plateforme leader de tests chaos, Chaos Mesh présente les atouts majeurs suivants :

  • Stabilité des fonctionnalités : Chaos Mesh est issu de la plateforme de test centrale de TiDB, héritant dès son lancement de l'expérience de test existante de TiDB.

  • Validation industrielle : Chaos Mesh est utilisé par de nombreuses entreprises comme Tencent et Meituan ; il est également intégré aux systèmes de test de solutions distribuées réputées comme Apache APISIX et RabbitMQ.

  • Facilité d'utilisation : Chaos Mesh exploite pleinement l'automatisation via des opérations graphiques et une intégration Kubernetes.

  • Cloud Native : Chaos Mesh prend en charge les environnements Kubernetes grâce à ses puissantes capacités d'automatisation.

  • Scénarios variés : Couvre la plupart des cas de simulation de pannes de base dans les systèmes distribués.

  • Orchestration flexible : Vous pouvez concevoir vos propres scénarios d'expériences, incluant des tests combinés et des vérifications d'état applicatif.

  • Sécurité renforcée : Conçu avec des contrôles de sécurité multicouches assurant une protection élevée.

  • Communauté active : Projet incubé par la CNCF, bénéficiant d'un nombre croissant de contributeurs et d'utilisateurs mondiaux.

  • Extensibilité aisée : Ajout simplifié de nouveaux types de tests et fonctionnalités.

Architecture générale

Chaos Mesh s'appuie sur les CRD Kubernetes (Custom Resource Definition). Pour gérer différentes expériences, il définit plusieurs types de CRD basés sur les pannes et implémente des contrôleurs dédiés. Chaos Mesh comprend trois composants principaux :

  • Chaos Dashboard : Composant de visualisation. Offre des interfaces web intuitives pour manipuler et observer les expériences, avec un mécanisme de gestion RBAC.

  • Chaos Controller Manager : Cœur logique responsable de l'orchestration des expériences. Contient plusieurs contrôleurs CRD : Workflow Controller, Scheduler Controller et contrôleurs de types de pannes.

  • Chaos Daemon : Composant exécutif principal. Fonctionnant en mode DaemonSet avec des privilèges par défaut (désactivables), il intervient sur les périphériques réseau, systèmes de fichiers et noyaux en pénétrant les namespaces des pods cibles.

Architecture
Architecture

Comme illustré ci-dessus, l'architecture globale se divise en trois parties :

  • Saisie et observation utilisateur : Les actions utilisateur atteignent l'API Server Kubernetes. Les utilisateurs n'interagissent pas directement avec Chaos Controller Manager. Toutes les opérations se matérialisent par des modifications de ressources Chaos (ex: changement NetworkChaos).

  • Surveillance des modifications de ressources, planification des Workflows et exécution des expériences Chaos : Le Chaos Controller Manager n'accepte que les événements provenant du Kubernetes API Server. Ces événements décrivent les modifications d'une ressource Chaos spécifique, comme la création d'un nouvel objet Workflow ou d'un objet Chaos.

  • Injection de pannes spécifiques au niveau des nœuds : Le composant Chaos Daemon est principalement responsable de la réception des commandes du Chaos Controller Manager, de l'intrusion dans l'espace de noms du Pod cible et de l'exécution d'injections de pannes spécifiques. Par exemple, configurer des règles réseau TC ou démarrer le processus stress-ng pour monopoliser les ressources CPU ou mémoire.