Exécuter une expérience de chaos
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 explique comment créer, exécuter, visualiser, suspendre, mettre à jour et supprimer des expériences de chaos dans Chaos Mesh.
Créer des expériences de chaos
Vous pouvez créer les types suivants d'expériences de chaos dans Chaos Mesh :
-
Expériences de chaos ponctuelles : L'instance la plus petite des expériences de chaos. Une fois une expérience ponctuelle créée, Chaos Mesh injecte immédiatement des fautes dans la machine de test cible selon les configurations de l'expérience. Si le paramètre
durationest configuré, les fautes injectées seront restaurées automatiquement après la période spécifiée parduration. Lorsque l'expérience de chaos est suspendue ou supprimée, les fautes injectées seront restaurées immédiatement. -
Expériences de chaos planifiées ou cycliques : Expériences de chaos qui peuvent être exécutées à intervalle régulier ou de manière cyclique. Vous devez définir les règles de planification de l'expérience lors de la création de ce type d'expérience de chaos.
Expériences de chaos ponctuelles
Pour créer une expérience de chaos ponctuelle, vous pouvez utiliser l'une des méthodes suivantes :
-
Utilisez Chaos Dashboard pour créer une nouvelle expérience de chaos, puis cliquez sur Soumettre pour exécuter l'expérience. Pour plus de détails, reportez-vous à la documentation de chaque type d'expérience de chaos spécifique.
-
Utilisez un fichier YAML pour définir l'expérience de chaos, puis créez et exécutez l'expérience à l'aide de
kubectl. Si vous souhaitez créer et exécuter une expérience de chaos de cette manière, suivez les étapes suivantes :
-
Créez un nouveau fichier YAML pour définir une expérience de chaos. Ajoutez des paramètres de configuration dans le fichier en fonction du type d'expérience de chaos que vous souhaitez créer.
Prenons l'exemple d'une expérience NetworkChaos. Enregistrez le texte YAML suivant sous le nom
network-delay.yaml.apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
name: network-delay
spec:
action: delay # the specific chaos action to inject
mode: one # the mode to run chaos action; supported modes are one/all/fixed/fixed-percent/random-max-percent
selector: # pods where to inject chaos actions
namespaces:
- default
labelSelectors:
'app': 'web-show' # the label of the pod for chaos injection
delay:
latency: '10ms'
duration: '12s'L'exemple YAML ci-dessus définit une panne de latence réseau durant
12 seconds, ciblant les applications avec le tag"app": "web-show"dans l'espace de nomsdefault. Pour plus d'informations sur la configuration de l'expérience NetworkChaos, reportez-vous à Simuler un chaos réseau. -
Exécutez la commande suivante pour créer et exécuter cette expérience de chaos.
kubectl apply -f network-delay.yaml -
Pour visualiser l'état d'exécution de l'expérience de chaos après son démarrage, utilisez la commande
kubectl describesuivante pour vérifier lestatusou l'eventde cet objet d'expérience.kubectl describe networkchaos network-delayPour les étapes détaillées de vérification du résultat de l'expérience de chaos, reportez-vous à Inspecter les expériences de chaos.
Expériences de chaos planifiées ou cycliques
Chaos Mesh propose l'objet Schedule pour créer des expériences de chaos planifiées et des expériences de chaos cycliques.
Pour créer ce type d'expériences de chaos, suivez les étapes suivantes :
-
Créez un nouveau fichier YAML pour définir une expérience de chaos. Vous devez configurer le paramètre
Scheduledans le fichier YAML pour définir les règles d'exécution spécifiques de l'expérience, puis configurer les autres paramètres selon le type d'expérience de chaos que vous souhaitez créer.Prenons l'exemple d'une expérience NetworkChaos planifiée. Enregistrez le texte YAML suivant dans
schedule-delay-example.yaml.apiVersion: chaos-mesh.org/v1alpha1
kind: Schedule
metadata:
name: schedule-delay-example
spec:
schedule: '5 * * * *'
historyLimit: 2
concurrencyPolicy: 'Allow'
type: 'NetworkChaos'
networkChaos:
action: delay
mode: one
selector:
namespaces:
- default
labelSelectors:
'app': 'web-show'
delay:
latency: '10ms'
duration: '12s'L'exemple YAML ci-dessus définit une latence réseau qui se déclenche automatiquement à la cinquième minute de chaque heure. Pour une présentation détaillée des règles de planification, consultez Définir des règles de planification.
noteSi vous ne définissez pas le paramètre
duration, le comportement de perturbation reste actif jusqu'à ce que vous mettiez en pause ou supprimiez l'expérience de chaos. -
Exécutez la commande suivante pour créer et exécuter cette expérience de chaos.
kubectl apply -f schedule-delay-example.yaml -
Pour vérifier l'état d'exécution de l'expérience de chaos après son démarrage, utilisez la commande
kubectl describesuivante pour consulter lestatusou l'eventde cet objet expérimental.kubectl describe networkchaos schedule-delay-examplePour les étapes détaillées de vérification des résultats de l'expérience de chaos, reportez-vous à Inspecter les expériences de chaos.
Mettre en pause des expériences de chaos
Mettre en pause ou reprendre des expériences de chaos via des commandes
Pour une expérience de chaos en cours d'exécution, vous pouvez la mettre en pause en lui appliquant une annotation de pause via des commandes.
Par exemple, vous pouvez utiliser la commande suivante pour mettre en pause une expérience de chaos nommée network-delay dans l'espace de noms par défaut :
kubectl annotate networkchaos network-delay experiment.chaos-mesh.org/pause=true
Une fois cette commande exécutée, Chaos Mesh restaure immédiatement les perturbations injectées. Si vous souhaitez reprendre cette expérience de chaos depuis l'état de pause vers l'état d'exécution normal, utilisez la commande suivante :
kubectl annotate networkchaos network-delay experiment.chaos-mesh.org/pause-
Mettre en pause ou reprendre des expériences de chaos via Chaos Dashboard
Pour mettre en pause ou reprendre une expérience de chaos via Chaos Dashboard, localisez l'expérience souhaitée dans le tableau de bord et cliquez sur le bouton Pause ou le bouton Démarrer.


Mettre à jour des expériences de chaos
Mettre à jour des expériences de chaos via des commandes
Le champ Spec d'une expérience de chaos ne peut actuellement pas être mis à jour.
Pour plus de détails, consultez le problème GitHub associé.
Mettre à jour des expériences de chaos via Chaos Dashboard
Chaos Dashboard ne prend pas en charge la mise à jour des expériences de chaos pour le moment car le champ Spec de ces expériences ne peut être modifié.
Supprimer des expériences de chaos
Supprimer des expériences de chaos via des commandes
Après la fin d'une expérience de chaos, vous pouvez la supprimer avec la commande kubectl delete suivante. Une fois l'expérience supprimée, la perturbation injectée sera immédiatement restaurée :
kubectl delete -f network-delay.yaml
# or delete the chaos object directly
kubectl delete networkchaos network-delay
Si l'opération de suppression est bloquée, cela signifie que certains comportements de perturbation sur l'objet cible ne peuvent être restaurés. Vous pouvez consulter les journaux de Chaos Mesh pour diagnostiquer le problème ou créer directement un problème GitHub pour le signaler à l'équipe Chaos Mesh. De plus, vous pouvez supprimer de force l'expérience de chaos avec la commande suivante :
kubectl annotate networkchaos web-show-network-delay chaos-mesh.chaos-mesh.org/cleanFinalizer=forced
Supprimer des expériences de chaos via Chaos Dashboard
Si vous souhaitez supprimer une expérience de chaos dans Chaos Dashboard tout en l'archivant dans l'historique des expériences, cliquez sur le bouton Archiver correspondant à l'expérience de chaos.
