Expériences en série et en parallèle
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 Workflow propose deux modes de planification des expériences : séquentiel et parallèle. Vous pouvez configurer et orchestrer plusieurs expériences selon vos besoins.
-
Pour planifier plusieurs expériences de chaos en séquence, utilisez des nœuds séquentiels.
-
Pour exécuter simultanément plusieurs expériences de chaos, utilisez des nœuds parallèles.
Chaos Mesh applique le modèle composite dans la conception des nœuds séquentiels et parallèles. Ces nœuds peuvent contenir plusieurs éléments de types différents et exécuter les structures composites selon un mode spécifique. Cela permet également d'imbriquer les nœuds séquentiels et parallèles pour réaliser des orchestrations complexes.
Expériences séquentielles
Lors de la création de templates dans Workflow, utilisez templateType: Serial pour déclarer un nœud séquentiel.
Le champ obligatoire children dans les nœuds séquentiels est de type []string et contient les noms d'autres template. Exemple :
apiVersion: chaos-mesh.org/v1alpha1
kind: Workflow
metadata:
name: try-workflow-serial
spec:
entry: serial-of-3-node
templates:
- name: serial-of-3-node
templateType: Serial
deadline: 240s
children:
- workflow-stress-chaos
- suspending
- workflow-network-chaos
- name: suspending
templateType: Suspend
deadline: 10s
- name: workflow-network-chaos
templateType: NetworkChaos
deadline: 20s
networkChaos:
direction: to
action: delay
mode: all
selector:
labelSelectors:
'app': 'hello-kubernetes'
delay:
latency: '90ms'
correlation: '25'
jitter: '90ms'
- name: workflow-stress-chaos
templateType: StressChaos
deadline: 20s
stressChaos:
mode: one
selector:
labelSelectors:
'app': 'hello-kubernetes'
stressors:
cpu:
workers: 1
load: 20
options: ['--cpu 1', '--timeout 600']
Ces commandes déclarent un nœud séquentiel nommé serial-of-3-node. Chaos Mesh exécute alors séquentiellement workflow-stress-chaos, suspending et workflow-network-chaos. Une fois toutes les tâches terminées, les nœuds séquentiels sont marqués comme complétés.
Lors de l'exécution du nœud séquentiel, les tâches déclarées dans children s'exécutent en séquence, garantissant qu'une seule tâche est active à un instant donné.
Le champ optionnel deadline des nœuds séquentiels limite la durée maximale du processus séquentiel. Si ce délai expire, les sous-nœuds en cours sont interrompus et les nœuds non exécutés sont abandonnés. Si tous les sous-nœuds terminent leur travail avant le deadline, les nœuds séquentiels sont immédiatement marqués comme terminés sans affecter le deadline.
Expériences parallèles
Lors de la création de templates dans Workflow, utilisez templateType: Parallel pour déclarer un nœud parallèle.
Le champ obligatoire children dans les nœuds parallèles est de type []string et contient les noms d'autres template. Exemple :
apiVersion: chaos-mesh.org/v1alpha1
kind: Workflow
metadata:
name: try-workflow-parallel
spec:
entry: parallel-of-2-chaos
templates:
- name: parallel-of-2-chaos
templateType: Parallel
deadline: 240s
children:
- workflow-stress-chaos
- workflow-network-chaos
- name: workflow-network-chaos
templateType: NetworkChaos
deadline: 20s
networkChaos:
direction: to
action: delay
mode: all
selector:
labelSelectors:
'app': 'hello-kubernetes'
delay:
latency: '90ms'
correlation: '25'
jitter: '90ms'
- name: workflow-stress-chaos
templateType: StressChaos
deadline: 20s
stressChaos:
mode: one
selector:
labelSelectors:
'app': 'hello-kubernetes'
stressors:
cpu:
workers: 1
load: 20
options: ['--cpu 1', '--timeout 600']
Ces commandes déclarent un nœud parallèle nommé parallel-of-2-chaos. Chaos Mesh exécute alors simultanément workflow-stress-chaos et workflow-network-chaos. Une fois toutes les tâches terminées, les nœuds parallèles sont marqués comme complétés.
Lors de l'exécution des nœuds parallèles, toutes les tâches déclarées dans children sont lancées simultanément.
Comme pour les nœuds séquentiels, le champ optionnel deadline est également disponible dans les nœuds parallèles pour limiter la durée maximale d'exécution du processus parallèle entier. Si ce délai est atteint, les sous-nœuds sont interrompus. Si tous les sous-nœuds terminent leur travail avant le deadline, les nœuds parallèles sont immédiatement marqués comme terminés et le deadline n'est pas affecté.
Créer un workflow avec nœuds séquentiels ou parallèles via Chaos Dashboard
Créer des nœuds séquentiels
Chaos Dashboard crée par défaut un nœud séquentiel prédéfini nommé entry. Lorsque vous créez un workflow avec des nœuds séquentiels via Chaos Dashboard, le workflow est donc placé sous entry par défaut.

Créer des nœuds parallèles
Créez un nœud parallèle Parallel puis ajoutez des sous-nœuds sous Parallel.

Imbriquer nœuds séquentiels et parallèles
Combinez nœuds séquentiels et parallèles pour créer des processus complexes.
