This document describes how to create DNSChaos experiments in Chaos Mesh.
DNSChaos allows you to simulate fault DNS responses such as a DNS error or a random IP address after a request is sent.
To create DNSChaos experiments in Chaos Mesh, you need to deploy a DNS service in Chaos Mesh by executing the command below:
When the deployment finishes, check the status of this DNS service:
Make sure the Pod's
Below is a sample DNSChaos configuration file:
For more sample files, see examples. You can edit them as needed.
- action: Defines the chaos action for DNS chaos. Supported actions are:
error- Get an error when sending the DNS request
random- Get a random IP when sending the DNS request
scope: Defines the scope of the DNS chaos. Supported scopes are:
outer- DNS chaos only works on outer hosts of the Kubernetes cluster
inner- DNS chaos only works on inner hosts of the Kubernetes cluster
all- DNS chaos works on all hosts.
selector: Specifies the target pods for chaos injection. For more details, see Define the Scope of Chaos Experiment.
Currently, DNSChaos only supports record types
The chaos DNS service runs CoreDNS with the k8s_dns_chaos plugin. If the CoreDNS service in your Kubernetes cluster contains some special configurations, you can edit configMap
dns-server-configto make the configuration of the chaos DNS service consistent with that of the K8s CoreDNS service as shown below:kubectl edit configmap dns-server-config -n chaos-testing