Zum Hauptinhalt springen
Version: Nächste

DNS-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 DNSChaos-Experimente in Chaos Mesh erstellen, um DNS-Fehler zu simulieren.

Hinweis

Um DNS-Fehler zu simulieren, müssen Sie einen speziellen DNS-Dienst namens Chaos DNS Server bereitstellen.

Ab Version v2.6 wird Chaos DNS Server standardmäßig von Chaos Mesh bereitgestellt. Falls Sie keine DNS-Fehler simulieren müssen, können Sie beim Installieren von Chaos Mesh dnsServer.create auf false setzen:

DNSChaos-Überblick

DNSChaos simuliert fehlerhafte DNS-Antworten. Beispielsweise kann DNSChaos einen Fehler zurückgeben oder eine zufällige IP-Adresse liefern, wenn eine DNS-Anfrage eingeht.

Prüfen, ob Chaos DNS Server bereitgestellt ist

Führen Sie folgenden Befehl aus, um zu prüfen, ob Chaos DNS Server bereitgestellt wurde:

kubectl get pods -n chaos-mesh -l app.kubernetes.io/component=chaos-dns-server

Stellen Sie sicher, dass der Pod-Status Running ist.

Hinweise

  1. Derzeit unterstützt DNSChaos nur die Record-Typen A und AAAA.

  2. Der Chaos-DNS-Dienst nutzt CoreDNS mit dem k8s_dns_chaos-Plugin. Falls Ihr CoreDNS-Dienst in Kubernetes spezielle Konfigurationen enthält, können Sie die ConfigMap dns-server-config bearbeiten, um die Konfiguration des Chaos-DNS-Diensts an den K8s-CoreDNS-Dienst anzupassen:

    kubectl edit configmap dns-server-config -n chaos-mesh

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 DNS FAULT und ein spezifisches Verhalten wie ERROR. Tragen Sie dann die Übereinstimmungsregeln ein.

    DNSChaos-Experiment
    DNSChaos-Experiment

    Gemäß den konfigurierten Übereinstimmungsregeln im Screenshot wirkt der DNS-Fehler für Domains wie google.com, chaos-mesh.org und github.com. Das bedeutet, dass bei DNS-Anfragen für diese drei Domains ein Fehler zurückgegeben wird. Details zu den Übereinstimmungsregeln finden Sie in der Beschreibung des patterns-Felds unter Konfigurationsbeschreibung.

  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. Speichern Sie die Experimentkonfiguration in der Datei dnschaos.yaml:

    apiVersion: chaos-mesh.org/v1alpha1
    kind: DNSChaos
    metadata:
    name: dns-chaos-example
    namespace: chaos-mesh
    spec:
    action: random
    mode: all
    patterns:
    - google.com
    - chaos-mesh.*
    - github.?om
    selector:
    namespaces:
    - busybox

    Diese Konfiguration wirkt für Domains wie google.com, chaos-mesh.org und github.com. Das bedeutet, dass bei DNS-Anfragen für diese Domains eine IP-Adresse zurückgegeben wird. Details zu den Übereinstimmungsregeln finden Sie in der patterns-Beschreibung unter Konfigurationsbeschreibung.

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

    kubectl apply -f dnschaos.yaml

Konfigurationsbeschreibung

ParameterTypeDescriptionDefault valueRequiredExample
actionstringDefines the behavior of DNS fault. Optional values: random or error. When the value is random, DNS service returns a random IP address; when the value is error, DNS service returns an error.NoneYesrandom or error
patternsString arraySelects a domain template that matches faults. Placeholder ? and wildcard are supported. *[]Nogoogle.com, chaos-mesh.org, github.com
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
selectorstructSpecifies the target Pod. For details, refer to Define the Scope of Chaos Experiments.NoneYes
Hinweis
  • Wildcards in patterns müssen am Ende der Zeichenfolge stehen. Beispielsweise ist chaos-mes*.org. eine ungültige Konfiguration.

  • Ohne konfigurierte patterns werden Fehler für alle Domains eingespielt.