Lancez votre première expérience de chaos en 10 minutes
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 →

Le Chaos Engineering permet de tester la robustesse d'un système logiciel en production en simulant des conditions inhabituelles ou perturbatrices. Cependant, pour beaucoup, le passage de l'apprentissage à la pratique sur leurs propres systèmes semble intimidant. Cela ressemble à l'une de ces grandes idées nécessitant une équipe complète pour planifier à l'avance. Pourtant, ce n'est pas forcément le cas. Pour vous lancer dans l'expérimentation du chaos, il vous suffit peut-être simplement d'une plateforme adaptée.
Chaos Mesh est une plateforme de Chaos Engineering simple d'utilisation, open source et cloud-native qui orchestre le chaos dans les environnements Kubernetes. Ce tutoriel de 10 minutes vous aidera à démarrer rapidement avec le Chaos Engineering et à lancer votre première expérience de chaos avec Chaos Mesh.
Pour plus d'informations sur Chaos Mesh, consultez notre article précédent ou le projet chaos-mesh sur GitHub.
Aperçu de notre petite expérience
Les expériences de chaos ressemblent aux expériences que nous faisons en cours de sciences. Il est parfaitement acceptable de provoquer des situations turbulentes dans un environnement contrôlé. Ici, nous simulerons un chaos réseau sur une petite application web appelée web-show. Pour visualiser l'effet du chaos, web-show enregistre la latence entre son pod et le pod kube-controller (dans le namespace kube-system) toutes les 10 secondes.
La séquence suivante montre le processus d'installation de Chaos Mesh, de déploiement de web-show et de création de l'expérience de chaos en quelques commandes :

À vous de jouer ! Il est temps de vous salir les mains.
Commençons !
Pour notre expérience simple, nous utilisons Kubernetes dans Docker (Kind) pour le développement Kubernetes. Vous pouvez librement utiliser Minikube ou tout cluster Kubernetes existant pour suivre ce guide.
Préparer l'environnement
Avant de continuer, assurez-vous d'avoir Git et Docker installés sur votre ordinateur local, avec Docker en cours d'exécution. Pour macOS, il est recommandé d'allouer au moins 6 cœurs CPU à Docker. Pour plus de détails, consultez la configuration Docker pour Mac.
-
Récupérez Chaos Mesh :
git clone https://github.com/chaos-mesh/chaos-mesh.git
cd chaos-mesh/ -
Installez Chaos Mesh avec le script
install.sh:./install.sh --local kindinstall.shest un script shell automatisé qui vérifie votre environnement, installe Kind, lance des clusters Kubernetes localement et déploie Chaos Mesh. Pour voir la description détaillée deinstall.sh, vous pouvez ajouter l'option--help.Remarque :
Si votre ordinateur local ne peut pas récupérer les images depuis
docker.ioougcr.io, utilisez le miroir local gcr.io et exécutez./install.sh --local kind --docker-mirror. -
Configurez la variable d'environnement système :
source ~/.bash_profile
Remarque :
Selon votre réseau, ces étapes peuvent prendre quelques minutes.
Si vous voyez un message d'erreur comme celui-ci :
ERROR: failed to create cluster: failed to generate kubeadm config content: failed to get kubernetes version from node: failed to get file: command "docker exec --privileged kind-control-plane cat /kind/version" failed with error: exit status 1augmentez les ressources disponibles pour Docker sur votre ordinateur local et exécutez la commande suivante :
./install.sh --local kind --force-local-kube
Lorsque le processus est terminé, vous verrez un message confirmant l'installation réussie de Chaos Mesh.
Déployer l'application
L'étape suivante consiste à déployer l'application de test. Nous choisissons web-show car il permet d'observer directement les effets du chaos réseau. Vous pouvez également déployer votre propre application pour les tests.
-
Déployez web-show avec le script
deploy.sh:# Make sure you are in the Chaos Mesh directory
cd examples/web-show &&
./deploy.shRemarque :
Si votre ordinateur ne peut pas récupérer les images depuis
docker.io, utilisez le miroirlocal gcr.ioet exécutez./deploy.sh --docker-mirror. -
Accédez à l'application web-show. Depuis votre navigateur, rendez-vous à l'adresse
http://localhost:8081.
Créer l'expérience de chaos
Maintenant que tout est prêt, il est temps de lancer votre expérience de chaos !
Chaos Mesh utilise les CustomResourceDefinitions (CRD) pour définir les expériences de chaos. Les objets CRD sont conçus spécifiquement selon les scénarios d'expérience, ce qui simplifie grandement leur définition. Actuellement, Chaos Mesh implémente les objets CRD suivants : PodChaos, NetworkChaos, IOChaos, TimeChaos et KernelChaos. D'autres types d'injection de fautes seront ajoutés ultérieurement.
Dans cette expérience, nous utilisons NetworkChaos pour l'expérience de chaos. Le fichier de configuration NetworkChaos, écrit en YAML, est présenté ci-dessous :
apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
name: network-delay-example
spec:
action: delay
mode: one
selector:
namespaces:
- default
labelSelectors:
"app": "web-show"
delay:
latency: "10ms"
correlation: "100"
jitter: "0ms"
duration: "30s"
scheduler:
cron: "@every 60s"
Pour une description détaillée des actions NetworkChaos, consultez le wiki Chaos Mesh. Ici, nous reformulons simplement la configuration comme suit :
-
cible :
web-show -
mission : injecter un délai réseau de
10mstoutes les60s -
durée d'attaque :
30sà chaque fois
Pour démarrer NetworkChaos, procédez comme suit :
-
Exécutez
network-delay.yaml:# Make sure you are in the chaos-mesh/examples/web-show directory
kubectl apply -f network-delay.yaml -
Accédez à l'application web-show. Dans votre navigateur, rendez-vous à l'adresse
http://localhost:8081.Le graphique linéaire montrera un délai réseau de 10 ms toutes les 60 secondes.

Félicitations ! Vous venez de semer un peu de chaos. Si cela vous intrigue et que vous souhaitez essayer d'autres expériences avec Chaos Mesh, consultez examples/web-show.
Supprimer l'expérience de chaos
Une fois vos tests terminés, mettez fin à l'expérience de chaos.
-
Supprimez
network-delay.yaml:# Make sure you are in the chaos-mesh/examples/web-show directory
kubectl delete -f network-delay.yaml -
Accédez à l'application web-show. Depuis votre navigateur, rendez-vous à l'adresse
http://localhost:8081.
Sur le graphique linéaire, vous constatez que le niveau de latence réseau est revenu à la normale.

Supprimer les clusters Kubernetes
Une fois votre expérience de chaos terminée, exécutez la commande suivante pour supprimer les clusters Kubernetes :
kind delete cluster --name=kind
Note :
Si vous rencontrez l'erreur
kind: command not found, exécutez d'abord la commandesource ~/.bash_profileavant de supprimer les clusters Kubernetes.
Bravo ! Et maintenant ?
Félicitations pour votre premier voyage réussi dans l'ingénierie du chaos ! Quelle impression ? L'ingénierie du chaos est simple, n'est-ce pas ? Mais peut-être trouvez-vous Chaos Mesh moins intuitif ? La ligne de commande semble peu pratique, la rédaction manuelle des fichiers YAML un peu fastidieuse, ou la vérification des résultats quelque peu maladroite ? Ne vous inquiétez pas : Chaos Dashboard arrive bientôt ! Exécuter des expériences de chaos via une interface web, cela promet ! Si vous souhaitez nous aider à établir des standards de test pour les plateformes cloud ou améliorer Chaos Mesh, nous serions ravis de vous entendre !
Si vous découvrez un bug ou estimez qu'une fonctionnalité manque, n'hésitez pas à ouvrir un ticket, proposer une pull request (PR) ou nous rejoindre sur le canal #project-chaos-mesh de l'espace Slack CNCF.