Simuler des pannes GCP
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 utiliser Chaos Mesh pour injecter des pannes dans des Pods GCP. Le Chaos Dashboard et des fichiers YAML sont fournis pour créer des expériences GCPChaos.
Présentation de GCPChaos
GCPChaos est un type de panne dans Chaos Mesh. En créant une expérience GCPChaos, vous pouvez simuler des scénarios de panne sur l'instance GCP spécifiée. Actuellement, GCPChaos prend en charge les types de pannes suivants :
-
Arrêt de nœud : stoppe l'instance GCP spécifiée.
-
Réinitialisation de nœud : redémarre l'instance GCP spécifiée.
-
Perte de disque : désinstalle le volume de stockage de l'instance GCP spécifiée.
Fichier Secret
Pour faciliter la connexion au cluster GCP, vous pouvez créer un fichier Kubernetes Secret pour stocker les informations d'authentification à l'avance.
Voici un exemple de fichier secret :
apiVersion: v1
kind: Secret
metadata:
name: cloud-key-secret
namespace: chaos-mesh
type: Opaque
stringData:
service_account: your-gcp-service-account-base64-encode
-
name définit le nom du secret Kubernetes.
-
namespace définit l'espace de noms du secret Kubernetes.
-
service_account stocke la clé de compte de service de votre cluster GCP. Pensez à encoder votre clé de compte de service GCP en Base64. Pour en savoir plus sur les clés de compte de service, consultez Création et gestion des clés de compte de service.
Créer des expériences avec Chaos Dashboard
Avant de créer une expérience via Chaos Dashboard, assurez-vous que les conditions suivantes sont remplies :
-
Chaos Dashboard est installé.
-
Chaos Dashboard est accessible via la commande
kubectl port-forward:kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333Vous pouvez ensuite accéder au dashboard via
http://localhost:2333dans votre navigateur.
-
Ouvrez Chaos Dashboard, puis cliquez sur NOUVELLE EXPÉRIENCE pour créer une nouvelle expérience :

img -
Dans la section Choisir une cible, sélectionnez Panne GCP puis un comportement spécifique, par exemple ARRÊT DE NŒUD :

img -
Renseignez les informations de l'expérience, puis spécifiez son périmètre et sa durée planifiée :

img 
img -
Soumettez les informations de l'expérience.
Créer des expériences avec un fichier YAML
Exemple de configuration node-stop
-
Écrivez la configuration de l'expérience dans
gcpchaos-node-stop.yaml, comme ci-dessous :apiVersion: chaos-mesh.org/v1alpha1
kind: GCPChaos
metadata:
name: node-stop-example
namespace: chaos-mesh
spec:
action: node-stop
secretName: 'cloud-key-secret'
project: 'your-project-id'
zone: 'your-zone'
instance: 'your-instance-name'
duration: '5m'Grâce à cet exemple de configuration, Chaos Mesh injectera la panne
node-stopdans l'instance GCP spécifiée, la rendant indisponible pendant 5 minutes.Pour plus d'informations sur l'arrêt d'instances GCP, consultez Arrêter une instance GCP.
-
Une fois le fichier de configuration prêt, utilisez
kubectlpour créer l'expérience :kubectl apply -f gcpchaos-node-stop.yaml
Exemple de configuration node-reset
-
Écrivez la configuration de l'expérience dans le fichier
gcpchaos-node-reset.yaml, comme indiqué ci-dessous :apiVersion: chaos-mesh.org/v1alpha1
kind: GCPChaos
metadata:
name: node-reset-example
namespace: chaos-mesh
spec:
action: node-reset
secretName: 'cloud-key-secret'
project: 'your-project-id'
zone: 'your-zone'
instance: 'your-instance-name'
duration: '5m'D'après cet exemple de configuration, Chaos Mesh injectera un défaut
node-resetdans l'instance GCP spécifiée, ce qui entraînera la réinitialisation de l'instance GCP.Pour plus d'informations sur la réinitialisation des instances GCP, consultez Réinitialiser une instance GCP.
-
Une fois le fichier de configuration prêt, utilisez
kubectlpour créer l'expérience :kubectl apply -f gcpchaos-node-reset.yaml
Exemple de configuration disk-loss
-
Écrivez la configuration de l'expérience dans le fichier
gcpchaos-disk-loss.yaml, comme indiqué ci-dessous :apiVersion: chaos-mesh.org/v1alpha1
kind: GCPChaos
metadata:
name: disk-loss-example
namespace: chaos-mesh
spec:
action: disk-loss
secretName: 'cloud-key-secret'
project: 'your-project-id'
zone: 'your-zone'
instance: 'your-instance-name'
deviceNames: ['disk-name']
duration: '5m'D'après cet exemple de configuration, Chaos Mesh injectera un défaut
disk-lossdans l'instance GCP spécifiée, ce qui détachera l'instance GCP du volume de stockage spécifié dans un délai de 5 minutes.Pour plus d'informations sur le détachement des instances GCP, consultez Détacher un stockage GCP.
-
Une fois le fichier de configuration prêt, utilisez
kubectlpour créer l'expérience :kubectl apply -f gcpchaos-disk-loss.yaml
Description des champs
Le tableau suivant décrit les champs du fichier de configuration YAML.
| Parameter | Type | Descpription | Default value | Required | Example |
|---|---|---|---|---|---|
| action | string | Indicates the specific type of faults. The available fault types include node-stop, node-reset, and disk-loss. | node-stop | Yes | node-stop |
| mode | string | Indicates the mode of the experiment. The mode options include one (selecting a Pod at random), all (selecting all eligible Pods), fixed (selecting a specified number of eligible Pods), fixed-percent (selecting a specified percentage of the eligible Pods), and random-max-percent (selecting the maximum percentage of the eligible Pods). | None | Yes | one |
| value | string | Provides parameters for the mode configuration, depending on mode. For example, when mode is set to fixed-percent, value specifies the percentage of pods. | None | No | 1 |
| secretName | string | Indicates the name of the Kubernetes secret that stores the GCP authentication information. | None | No | cloud-key-secret |
| project | string | Indicates the ID of GCP project. | None | Yes | real-testing-project |
| zone | string | Indicates the region of GCP instance. | None | Yes | us-central1-a |
| instance | string | Indicates the name of GCP instance. | None | Yes | gke-xxx-cluster--default-pool-xxx-yyy |
| deviceNames | []string | This is a required field when the action is disk-loss. This field specifies the machine disk ID. | None | no | ["your-disk-id"] |
| duration | string | Indicates the duration of the experiment. | None | Yes | 30s |