Aller au contenu principal
Version : Suivant

Exécuter une expérience de chaos

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 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 duration est configuré, les fautes injectées seront restaurées automatiquement après la période spécifiée par duration. 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 :

  1. 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 noms default. Pour plus d'informations sur la configuration de l'expérience NetworkChaos, reportez-vous à Simuler un chaos réseau.

  2. Exécutez la commande suivante pour créer et exécuter cette expérience de chaos.

    kubectl apply -f network-delay.yaml
  3. Pour visualiser l'état d'exécution de l'expérience de chaos après son démarrage, utilisez la commande kubectl describe suivante pour vérifier le status ou l'event de cet objet d'expérience.

    kubectl describe networkchaos network-delay

    Pour 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 :

  1. Créez un nouveau fichier YAML pour définir une expérience de chaos. Vous devez configurer le paramètre Schedule dans 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.

    note

    Si 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.

  2. Exécutez la commande suivante pour créer et exécuter cette expérience de chaos.

    kubectl apply -f schedule-delay-example.yaml
  3. Pour vérifier l'état d'exécution de l'expérience de chaos après son démarrage, utilisez la commande kubectl describe suivante pour consulter le status ou l'event de cet objet expérimental.

    kubectl describe networkchaos schedule-delay-example

    Pour 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 en pause l'expérience
Mettre en pause l'expérience

Relancer l'expérience
Relancer l'expérience

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.

Archiver une expérience
Archiver une expérience