Zum Hauptinhalt springen
Version: Nächste

Zeitfehler simulieren

Inoffizielle Beta-Übersetzung

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

TimeChaos-Einführung

Chaos Mesh bietet den Experimenttyp TimeChaos. Mit diesem Experimenttyp können Sie Szenarien mit Zeitversatz simulieren. Dieses Dokument beschreibt, wie Sie ein TimeChaos-Experiment erstellen und die zugehörige Konfigurationsdatei einrichten.

Hinweis

TimeChaos wirkt sich nur auf den Prozess mit PID 1 im PID-Namensraum des Containers und auf Kindprozesse des Prozesses mit PID 1 aus. Beispielsweise wird ein Prozess, der mit kubectl exec gestartet wurde, nicht beeinflusst.

Sie können Experimente entweder über das Chaos Dashboard oder mithilfe der YAML-Konfigurationsdatei erstellen.

Experimente mit Chaos Dashboard erstellen

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

    Create Experiment
    Create Experiment

  2. Wählen Sie im Bereich Choose a Target die Option CLOCK SCREW und tragen Sie Clock ID sowie Zeitversatz ein:

    TimeChaos-Experimente
    TimeChaos-Experimente

  3. Geben Sie die Versuchsinformationen ein, legen Sie den Anwendungsbereich fest und definieren Sie die geplante Laufzeit:

    Versuchsinformationen
    Versuchsinformationen

  4. Übermitteln Sie die Experimentinformationen.

Experimente mit YAML-Dateien erstellen

  1. Schreiben Sie die Experimentkonfiguration in eine YAML-Datei. Im folgenden Beispiel wird die Datei time-shift.yaml verwendet:

    apiVersion: chaos-mesh.org/v1alpha1
    kind: TimeChaos
    metadata:
    name: time-shift-example
    namespace: chaos-mesh
    spec:
    mode: one
    selector:
    labelSelectors:
    'app': 'app1'
    timeOffset: '-10m100ns'

    Diese Konfiguration verschiebt die Zeit der Prozesse im angegebenen Pod um 10 Minuten und 100 Nanosekunden nach vorne.

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

    kubectl apply -f time-shift.yaml

Die Felder der YAML-Konfigurationsdatei werden in folgender Tabelle erläutert:

ParameterTypeNoteDefault valueRequiredExample
timeOffsetstringSpecifies the length of time offset.NoneYes-5m
clockIds[]stringSpecifies the ID of clock that will be offset. See the clock_gettime documentation for details.["CLOCK_REALTIME"]No["CLOCK_REALTIME", "CLOCK_MONOTONIC"]
modestringSpecifies the mode of the experiment. The mode options include one (selecting a random Pod), all (selecting all eligible Pods), fixed (selecting a specified number of eligible Pods), fixed-percent (selecting a specified percentage of Pods from the eligible Pods), and random-max-percent (selecting the maximum percentage of Pods from 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
containerNames[]stringSpecifies the name of the container into which the fault is injected.NoneNo["nginx"]
selectorstructSpecifies the target Pod. For details, refer to Define the experiment scope.NoneYes