DNS-Fehler simulieren
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.
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
-
Derzeit unterstützt DNSChaos nur die Record-Typen
AundAAAA. -
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-configbearbeiten, 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
-
Öffnen Sie Chaos Dashboard und klicken Sie auf NEW EXPERIMENT, um ein neues Experiment zu erstellen:

Create Experiment -
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 Gemäß den konfigurierten Übereinstimmungsregeln im Screenshot wirkt der DNS-Fehler für Domains wie
google.com,chaos-mesh.orgundgithub.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 despatterns-Felds unter Konfigurationsbeschreibung. -
Geben Sie die Versuchsinformationen ein, legen Sie den Anwendungsbereich fest und definieren Sie die geplante Laufzeit:

Versuchsinformationen -
Übermitteln Sie die Experimentinformationen.
Experimente mit YAML-Dateien erstellen
-
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:
- busyboxDiese Konfiguration wirkt für Domains wie
google.com,chaos-mesh.orgundgithub.com. Das bedeutet, dass bei DNS-Anfragen für diese Domains eine IP-Adresse zurückgegeben wird. Details zu den Übereinstimmungsregeln finden Sie in derpatterns-Beschreibung unter Konfigurationsbeschreibung. -
Nach der Vorbereitung der Konfigurationsdatei erstellen Sie das Experiment mit
kubectl:kubectl apply -f dnschaos.yaml
Konfigurationsbeschreibung
| Parameter | Type | Description | Default value | Required | Example |
|---|---|---|---|---|---|
action | string | Defines 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. | None | Yes | random or error |
patterns | String array | Selects a domain template that matches faults. Placeholder ? and wildcard are supported. * | [] | No | google.com, chaos-mesh.org, github.com |
mode | string | Specifies 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). | 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 |
selector | struct | Specifies the target Pod. For details, refer to Define the Scope of Chaos Experiments. | None | Yes |
-
Wildcards in
patternsmüssen am Ende der Zeichenfolge stehen. Beispielsweise istchaos-mes*.org.eine ungültige Konfiguration. -
Ohne konfigurierte
patternswerden Fehler für alle Domains eingespielt.