You can check the Mesos-DNS version by executing
You can customize all fields in the SOA records for the Mesos domain. See the
SOA* configuration parameters.
If you start Mesos-DNS in verbose mode using the
-v=2 arguments, it prints a variety of messages that are useful for debugging and performance tuning. The
-v=2 option will periodically print every A or SRV record Mesos-DNS generates. In large clusters, this can overwhelm log management tools, such as systemd-journald, and they will drop messages. This is not a viable method to enumerate the state of a Mesos-DNS server.
Make sure that the port used for Mesos-DNS is available and not in use by another process. To use the recommended port
53, you must start Mesos-DNS as root.
Alternatively, if you have an operating system and file system that supports capabilities, you can run
sudo setcap 'cap_net_bind_service=+ep' mesos-dns, which will then allow Mesos-DNS to bind to privileged ports, without requiring it to run as root.
Make sure that port
53 is not blocked by a firewall rule on your cluster. For example, Google Cloud Platform blocks port
53 by default. If you use the
zk field, you should also check if the Zookeeper port is not blocked either. Finally, if you use the HTTP interface for Mesos-DNS, make sure that the
httpport is open.
/etc/resolv.conf file. If multiple nameservers are listed and Mesos-DNS is not the first one, the slave will first connect to the other name servers. If
options rotate is used and one of the listed nameservers is not Mesos-DNS, then you will get intermittent failures.
Check the configuration file to make sure that Mesos-DNS is directed to the right Zookeeper or master(s) for the Mesos cluster (
Check the configuration file to make sure that Mesos-DNS is configured with the IP address of external DNS servers (
When you update the configuration file, you need to restart Mesos-DNS. No state is lost long-term on restart as Mesos-DNS is stateless and retrieves task state from the Mesos master(s). There is a short inconsistency window where records may be missing while the zone is being generated from the state.json.
Some frameworks register with longer, less user-friendly names. For example, earlier versions of marathon may register with names like
marathon-0.7.5, which will lead to names like
search.marathon-0.7.5.mesos. Make sure your framework registers with the desired name. For instance, you can launch marathon with
--framework_name marathon to get the framework registered as
zk field is defined, Mesos-DNS will ignore the
masters field. It will contact Zookeeper to detect the leading Mesos master. If the
zk field is not used, Mesos-DNS uses the
masters field in the configuration file only for the initial requests to the Mesos master. The initial request for task state also return information about the current masters. This information is used for subsequent task state request. If you launch Mesos-DNS in verbose mode using
-v=2, there will be a period stdout message that identifies which master Mesos-DNS is contacting at the moment.