Comment exécuter des expériences de chaos sur votre machine physique
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 →

Chaos Mesh est une plateforme de Chaos Engineering cloud-native qui orchestre le chaos dans des environnements Kubernetes. Avec Chaos Mesh, vous pouvez simuler divers types de défaillances et utiliser Chaos Dashboard, une interface web, pour gérer directement les expériences de chaos. Depuis son open-sourcing, Chaos Mesh a été adopté par de nombreuses entreprises pour garantir la résilience et la robustesse de leurs systèmes. Mais cette dernière année, nous avons souvent reçu des demandes de la communauté sur la manière d'exécuter des expériences de chaos lorsque les services ne sont pas déployés sur Kubernetes.
Qu'est-ce que chaosd
Pour répondre aux besoins croissants de tests de chaos sur des machines physiques, nous sommes ravis de présenter une boîte à outils améliorée appelée chaosd. Ce nom pourrait vous sembler familier. C'est parce qu'il a évolué à partir de chaos-daemon, un composant clé de Chaos Mesh. Lors du TiDB Hackathon 2020, nous avons refondu chaosd pour en faire plus qu'un simple outil en ligne de commande. Avec chaosd v1.0.1, vous pouvez désormais simuler des erreurs spécifiques ciblant des machines physiques, puis annuler les expériences de chaos comme si rien ne s'était passé.
Avantages de chaosd
chaosd présente les avantages suivants :
-
Facilité d'utilisation : Vous pouvez facilement créer et gérer des expériences de chaos avec les commandes chaosd.
-
Diversité des types de fautes : Vous pouvez simuler des fautes à injecter sur des machines physiques à différents niveaux, notamment des fautes de processus, des fautes réseau, des fautes d'application Java Virtual Machine (JVM), des scénarios de stress, des fautes disque et des fautes hôte.
-
Multiples modes de fonctionnement : Vous pouvez utiliser chaosd comme un outil en ligne de commande ou comme un service.
Sans plus attendre, essayons-le.
Comment utiliser chaosd
Dans cette section, je vais vous montrer comment injecter une faute réseau avec chaosd. Votre version de glibc doit être v2.17 ou ultérieure.
1. Télécharger et décompresser chaosd
Pour télécharger chaosd, exécutez la commande suivante :
curl -fsSL -o chaosd-v1.0.1-linux-amd64.tar.gz https://mirrors.chaos-mesh.org/chaosd-v1.0.1-linux-amd64.tar.gz
Décompressez le fichier. Il contient deux dossiers :
-
chaosdcontient l'entrée de l'outil chaosd. -
toolscontient les outils nécessaires pour réaliser l'expérience de chaos, notamment stress-ng (pour simuler des scénarios de stress), Byteman (pour simuler des fautes d'application JVM) et PortOccupyTool (pour simuler des fautes réseau).
2. Créer une expérience de chaos
Dans cette expérience de chaos, le serveur ne pourra plus accéder à chaos-mesh.org.
Exécutez la commande suivante :
sudo ./chaosd attack network loss --percent 100 --hostname chaos-mesh.org --device ens33
Exemple de sortie :
Attack network successfully, uid: c55a84c5-c181-426b-ae31-99c8d4615dbe
Dans cette simulation, la carte réseau ens33 ne peut plus envoyer ni recevoir de paquets réseau depuis chaos-mesh.org. La raison pour laquelle vous devez utiliser des commandes sudo est que l'expérience de chaos modifie des règles réseau, ce qui nécessite des privilèges root.
N'oubliez pas non plus de noter l'uid de l'expérience de chaos. Vous en aurez besoin plus tard pour le processus de récupération.
3. Vérifier les résultats
Utilisez la commande ping pour vérifier si le serveur peut accéder à chaos-mesh.org :
ping chaos-mesh.org
PING chaos-mesh.org (185.199.109.153) 56(84) bytes of data.
Lorsque vous exécutez la commande, il est très probable que le site ne réponde pas. Appuyez sur CTRL+C pour arrêter le processus ping. Vous devriez voir les statistiques de la commande ping : 100% packet loss.
Exemple de sortie :
2 packets transmitted, 0 received, 100% packet loss, time 1021ms
4. Récupérer l'expérience
Pour récupérer l'expérience, exécutez la commande suivante :
sudo ./chaosd recover c55a84c5-c181-426b-ae31-99c8d4615dbe
Exemple de sortie :
Recover c55a84c5-c181-426b-ae31-99c8d4615dbe successfully
À cette étape, vous devez également utiliser des commandes sudo car des privilèges root sont requis. Une fois l'expérience récupérée, essayez à nouveau de pinger chaos-mesh.org pour vérifier la connexion.
Prochaines étapes
Support du dashboard web
Comme vous pouvez le constater, chaosd est assez simple à utiliser. Mais nous pouvons le rendre encore plus facile – un dashboard web pour chaosd est actuellement en cours de développement intensif.
Nous continuerons d'améliorer son ergonomie et d'implémenter davantage de fonctionnalités, comme la gestion des expériences de chaos exécutées avec chaosd ainsi que celles exécutées avec Chaos Mesh. Cela offrira une expérience utilisateur cohérente et unifiée pour les tests de chaos sur Kubernetes et les machines physiques. L'architecture ci-dessous n'est qu'un exemple simple :

Pour en savoir plus, consultez l'architecture optimisée de Chaos Mesh.
Ajouter plus de types d'injection de fautes
Actuellement, chaosd propose six types d'injection de fautes. Nous prévoyons de développer davantage de types déjà pris en charge par Chaos Mesh, notamment HTTPChaos et IOChaos.
Si vous êtes intéressé(e) par l'amélioration de chaosd, n'hésitez pas à choisir une issue et à commencer !
Essayez-le !
Si vous êtes intéressé(e) par l'utilisation de chaosd et souhaitez en explorer davantage, consultez la documentation. Si vous rencontrez un problème lors de l'exécution de chaosd ou si vous avez une demande de fonctionnalité, n'hésitez pas à créer une issue. Nous serions ravis d'avoir votre retour !