Zum Hauptinhalt springen
Version: 2.6.7

GCP-Fehler simulieren

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

Dieses Dokument beschreibt, wie Sie mit Chaos Mesh Fehler in GCP-Pods injizieren können. Chaos Dashboard und YAML-Dateien werden zur Erstellung von GCPChaos-Experimenten bereitgestellt.

Einführung in GCPChaos

GCPChaos ist ein Fehlertyp in Chaos Mesh. Durch Erstellen eines GCPChaos-Experiments können Sie Fehlerszenarien für die angegebene GCP-Instanz simulieren. Aktuell unterstützt GCPChaos folgende Fehlertypen:

  • Node Stop: Stoppt die angegebene GCP-Instanz.

  • Node Reset: Startet die angegebene GCP-Instanz neu.

  • Disk Loss: Trennt das Speichervolume von der angegebenen GCP-Instanz.

Secret-Datei

Zur einfachen Verbindung mit dem GCP-Cluster können Sie im Voraus eine Kubernetes-Secret-Datei erstellen, um Authentifizierungsinformationen zu speichern.

Nachfolgend finden Sie eine Beispiel-secret-Datei:

apiVersion: v1
kind: Secret
metadata:
name: cloud-key-secret
namespace: chaos-mesh
type: Opaque
stringData:
service_account: your-gcp-service-account-base64-encode
  • name definiert den Namen des Kubernetes-Secrets.

  • namespace definiert den Namespace des Kubernetes-Secrets.

  • service_account speichert den Service-Account-Schlüssel Ihres GCP-Clusters. Denken Sie daran, Ihren GCP-Service-Account-Schlüssel mittels Base64 zu codieren. Weitere Informationen zu Service-Account-Schlüsseln finden Sie unter Erstellen und Verwalten von Service-Account-Schlüsseln.

Experimente mit Chaos Dashboard erstellen

Hinweis

Stellen Sie vor der Experimenterstellung mit Chaos Dashboard folgende Voraussetzungen sicher:

  1. Chaos Dashboard ist installiert.

  2. Zugriff auf Chaos Dashboard ist via kubectl port-forward möglich:

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

    Anschließend können Sie das Dashboard unter http://localhost:2333 im Browser aufrufen.

  1. Öffnen Sie Chaos Dashboard und klicken Sie auf NEW EXPERIMENT, um ein neues Experiment zu erstellen:

    img
    img

  2. Wählen Sie im Bereich Choose a Target die Option GCP fault und ein spezifisches Verhalten wie STOP NODE:

    img
    img

  3. Füllen Sie die Experimentinformationen aus und definieren Sie Experimentumfang sowie geplante Laufzeit:

    img
    img

    img
    img

  4. Übermitteln Sie die Experimentinformationen.

Experimente per YAML-Datei erstellen

Beispielkonfiguration für node-stop

  1. Speichern Sie die Experimentkonfiguration in gcpchaos-node-stop.yaml, wie unten gezeigt:

    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'

    Basierend auf dieser Konfiguration injiziert Chaos Mesh den node-stop-Fehler in die angegebene GCP-Instanz, wodurch diese für 5 Minuten nicht verfügbar ist.

    Weitere Informationen zum Stoppen von GCP-Instanzen finden Sie unter Stop GCP instance.

  2. Nach Vorbereitung der Konfigurationsdatei erstellen Sie das Experiment mit kubectl:

    kubectl apply -f gcpchaos-node-stop.yaml

Beispielkonfiguration für node-reset

  1. Schreiben Sie die Experimentkonfiguration in die Datei gcpchaos-node-reset.yaml, wie unten gezeigt:

    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'

    Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh den node-reset-Fehler in die angegebene GCP-Instanz, sodass die GCP-Instanz zurückgesetzt wird.

    Weitere Informationen zum Zurücksetzen von GCP-Instanzen finden Sie unter Resetting a GCP instance.

  2. Nachdem die Konfigurationsdatei vorbereitet ist, verwenden Sie kubectl, um ein Experiment zu erstellen:

    kubectl apply -f gcpchaos-node-reset.yaml

Ein disk-loss-Konfigurationsbeispiel

  1. Schreiben Sie die Experimentkonfiguration in die Datei gcpchaos-disk-loss.yaml, wie unten gezeigt:

    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'

    Basierend auf diesem Konfigurationsbeispiel injiziert Chaos Mesh einen disk-loss-Fehler in die angegebene GCP-Instanz, sodass die GCP-Instanz innerhalb von 5 Minuten vom angegebenen Speichervolume getrennt wird.

    Weitere Informationen zum Trennen von GCP-Instanzen finden Sie unter Detach GCP storage.

  2. Nachdem die Konfigurationsdatei vorbereitet ist, verwenden Sie kubectl, um ein Experiment zu erstellen:

    kubectl apply -f gcpchaos-disk-loss.yaml

Feldbeschreibung

Die folgende Tabelle beschreibt die Felder in der YAML-Konfigurationsdatei.

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