Définir la portée des expériences 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 définir la portée d'une expérience de chaos, ce qui vous permet de contrôler précisément le rayon d'impact des défaillances.
Vue d'ensemble des portées d'expérience
Dans Chaos Mesh, vous définissez la portée d'une expérience de chaos en spécifiant un sélecteur.
Différents types de sélecteurs correspondent à différentes règles de filtrage. Vous pouvez spécifier un ou plusieurs sélecteurs dans une expérience de chaos pour définir sa portée. Si plusieurs sélecteurs sont spécifiés simultanément, la cible de l'expérience doit satisfaire simultanément les règles de tous les sélecteurs spécifiés.
Lorsque vous créez une expérience de chaos, Chaos Mesh propose les méthodes suivantes pour définir sa portée. Choisissez celle qui correspond à vos besoins :
-
Définir la portée dans un fichier de configuration YAML
-
Définir la portée via le Chaos Dashboard
Définir la portée dans un fichier de configuration YAML
Cette section présente la signification des différents types de sélecteurs, leur utilisation, et fournit des exemples de configuration dans des fichiers YAML. Lorsque vous définissez la portée dans un fichier YAML, vous pouvez spécifier un ou plusieurs sélecteurs selon vos besoins de filtrage.
Sélecteurs de namespace
-
Spécifie le namespace du Pod ciblé par l'expérience.
-
Type de données : tableau de chaînes de caractères.
-
Si ce sélecteur est vide ou non spécifié, Chaos Mesh utilise par défaut le namespace de l'expérience de chaos actuelle.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
namespaces:
- 'app-ns'
Sélecteurs de labels
-
Spécifie les labels que le Pod ciblé doit posséder.
-
Type de données : paires clé-valeur.
-
Si plusieurs labels sont spécifiés, la cible doit posséder tous les labels indiqués par ce sélecteur.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
labelSelectors:
'app.kubernetes.io/component': 'tikv'
Sélecteurs d'expression
-
Spécifie un ensemble d'expressions définissant les règles de labels pour cibler les Pods.
-
Ce sélecteur permet de cibler des Pods ne possédant pas certains labels.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
expressionSelectors:
- { key: tier, operator: In, values: [cache] }
- { key: environment, operator: NotIn, values: [dev] }
Sélecteurs d'annotations
-
Spécifie les annotations que le Pod ciblé doit posséder.
-
Type de données : paires clé-valeur.
-
Si plusieurs annotations sont spécifiées, la cible doit posséder toutes les annotations indiquées par ce sélecteur.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
annotationSelectors:
'example-annotation': 'group-a'
Sélecteurs de champs
-
Spécifie les champs du Pod ciblé.
-
Type de données : paires clé-valeur.
-
Si plusieurs champs sont spécifiés, la cible doit avoir tous les champs définis par ce sélecteur.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
fieldSelectors:
'metadata.name': 'my-pod'
Sélecteurs de phase de Pod
-
Spécifie la phase du Pod ciblé.
-
Type de données : tableau de chaînes de caractères.
-
Phases prises en charge :
Pending,Running,Succeeded,Failed,Unknown. -
Par défaut, cette option est vide, ce qui signifie que la phase du Pod cible n'est pas limitée.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
podPhaseSelectors:
- 'Running'
Sélecteurs de nœud
-
Spécifie le label de nœud auquel appartient le Pod cible de l'expérience.
-
Type de données : paires clé-valeur.
-
Si plusieurs labels de nœud sont spécifiés, le nœud auquel appartient le Pod cible doit posséder tous les labels définis par ce sélecteur.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
nodeSelectors:
'node-label': 'label-one'
Sélecteur de liste de nœuds
-
Spécifie le nœud auquel appartient le Pod cible de l'expérience.
-
Type de données : tableau de chaînes de caractères.
-
Le Pod cible ne peut appartenir qu'à un seul nœud dans la liste configurée.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
nodes:
- node1
- node2
Sélecteur de liste de Pods
-
Spécifie les namespaces et la liste des
Podscibles de l'expérience. -
Type de données : paires clé-valeur. Les "clés" représentent les namespaces des
Podcibles et les "valeurs" représentent la liste desPodcibles. -
Si ce sélecteur est spécifié, Chaos Mesh ignore les autres sélecteurs configurés.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
pods:
tidb-cluster: # namespace of the target pods
- basic-tidb-0
- basic-pd-0
- basic-tikv-0
- basic-tikv-1
Sélecteur de liste de machines physiques
-
Spécifie les namespaces et la liste des
PhysicalMachinescibles de l'expérience. -
Type de données : paires clé-valeur. Les "clés" représentent les namespaces des
PhysicalMachinecibles et les "valeurs" représentent la liste desPhysicalMachinecibles. -
Si ce sélecteur est spécifié, Chaos Mesh ignore les autres sélecteurs configurés.
PhysicalMachine est une CRD (CustomResourcesDefinition) représentant une machine physique. Pour créer un PhysicalMachine, Chaos Mesh utilise Chaosctl.
Lorsque vous créez l'expérience via un fichier YAML, vous devez configurer les sélecteurs. Par exemple :
spec:
selector:
physicalMachines:
default: # namespace of the target PhysicalMachines
- physical-machine-a
- physical-machine-b
Définir la portée de l'expérience sur Chaos Dashboard
Si vous utilisez Chaos Dashboard pour créer une expérience de chaos, vous pouvez configurer la portée lors de la saisie des informations de l'expérience.
Les sélecteurs suivants sont actuellement disponibles sur Chaos Dashboard. Vous pouvez en spécifier un ou plusieurs selon les besoins de filtrage de la portée :
-
Sélecteurs de namespace
-
Sélecteurs de labels
-
Sélecteurs d'annotations
-
Sélecteurs de phase
Lors de la configuration des sélecteurs, vous pouvez visualiser en temps réel la portée réelle des cibles dans le Dashboard et modifier directement la portée des Pods filtrés par les sélecteurs.

Matrice de compatibilité
| Type | Support Kubernetes | Support physical machine |
|---|---|---|
| Namespace Selectors | Yes | Yes |
| Label Selectors | Yes | Yes |
| Expression Selectors | Yes | Yes |
| Annotation Selectors | Yes | Yes |
| Field Selectors | Yes | Yes |
| PodPhase Selectors | Yes | No |
| Node Selectors | Yes | No |
| Node List Selectors | Yes | No |
| Pod List Selectors | Yes | No |
| PhysicalMachine List Selectors | No | Yes |