Aller au contenu principal
Version : 2.6.7

Simuler des pannes GCP

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

note

Avant de créer une expérience via Chaos Dashboard, assurez-vous que les conditions suivantes sont remplies :

  1. Chaos Dashboard est installé.

  2. Chaos Dashboard est accessible via la commande kubectl port-forward :

    kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333

    Vous pouvez ensuite accéder au dashboard via http://localhost:2333 dans votre navigateur.

  1. Ouvrez Chaos Dashboard, puis cliquez sur NOUVELLE EXPÉRIENCE pour créer une nouvelle expérience :

    img
    img

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

    img
    img

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

    img
    img

    img
    img

  4. Soumettez les informations de l'expérience.

Créer des expériences avec un fichier YAML

Exemple de configuration node-stop

  1. É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-stop dans 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.

  2. Une fois le fichier de configuration prêt, utilisez kubectl pour créer l'expérience :

    kubectl apply -f gcpchaos-node-stop.yaml

Exemple de configuration node-reset

  1. É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-reset dans 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.

  2. Une fois le fichier de configuration prêt, utilisez kubectl pour créer l'expérience :

    kubectl apply -f gcpchaos-node-reset.yaml

Exemple de configuration disk-loss

  1. É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-loss dans 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.

  2. Une fois le fichier de configuration prêt, utilisez kubectl pour 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.

ParameterTypeDescpriptionDefault valueRequiredExample
actionstringIndicates the specific type of faults. The available fault types include node-stop, node-reset, and disk-loss.node-stopYesnode-stop
modestringIndicates 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).NoneYesone
valuestringProvides parameters for the mode configuration, depending on mode. For example, when mode is set to fixed-percent, value specifies the percentage of pods.NoneNo1
secretNamestringIndicates the name of the Kubernetes secret that stores the GCP authentication information.NoneNocloud-key-secret
projectstringIndicates the ID of GCP project.NoneYesreal-testing-project
zonestringIndicates the region of GCP instance.NoneYesus-central1-a
instancestringIndicates the name of GCP instance.NoneYesgke-xxx-cluster--default-pool-xxx-yyy
deviceNames[]stringThis is a required field when the action is disk-loss. This field specifies the machine disk ID.Noneno["your-disk-id"]
durationstringIndicates the duration of the experiment.NoneYes30s