Custom Wildcard Domain for CoreDNS
3 min readDec 4, 2023
I normally forward the CoreDNS to an external DNS server for some custom wildcard domain requirement. This is achieved by adding the following forward plugin into the coredns config map,
apiVersion: v1
kind: ConfigMap
metadata:
name: coredns
namespace: kube-system
data:
Corefile: |
apps.k3s.io.cpak:53 {
errors
cache 30
forward . 192.168.10.79
reload
}
.:53 {
errors
health
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
hosts /etc/coredns/NodeHosts {
ttl 60
reload 15s
fallthrough
}
prometheus :9153
forward . /etc/resolv.conf
cache 30
loop
reload
loadbalance
}
import /etc/coredns/custom/*.server
But the precondition is that the UDP traffic is allowed from the cluster nodes to the custom DNS server.
I have a K3S cluster where the UDP traffic between the nodes are not allowed. To overcome this, let’s explore the built-in custom “file” plugin support of CoreDNS.
RFC1035 Style File
Create a following text file,
$ORIGIN {{ .domain }}.
$TTL 60
@ IN SOA ns1.{{ .domain }}. hostmaster.{{ .domain }}. (…