Hi James, when you deploy Netmaker to the first node, a CoreDNS pod is spun up, which handles private DNS. Netmaker creates A records for each host based on their name and private address. The netclient (on each node) then sets CoreDNS as a nameserver, and retrieves those DNS entries, which will look like this:
node1.microk8s A 10.101.0.1
node2.microk8s A 10.101.0.2
node3.microk8s A 10.101.0.3
So, DNS lookups from nodes will be routed to the CoreDNS pod, and that pod does not need to be tied to the first host. Every host also gets a distinct DNS record.
However (and maybe you are alluding to this), in my example I use the default microk8s "storage" plugin. The CoreDNS volume IS tied to the host in this case, which means that if host goes down, the CoreDNS instance will break, so I would not recommend using this plugin as your storage provider in production.
One other note is that the DNS/hostname based routing is just one small part of the traffic routing for MicroK8s. For instance, the pod and service network run fine over Netmaker without this. Certain lookups just won't function unless all hostnames are resolvable from each host.