DNS
DNS server for finding machines.
CoreDNS
Choice of CoreDNS due to basic usage and have lots of pluging inside.
You can use in docker
docker run -d --restart=always --name=coredns -v $(pwd)/Corefile:/Corefile --dns=127.0.0.1 -p 10.10.10.1:53:53/tcp -p 10.10.10.1:53:53/udp coredns/coredns:1.8.0But I will choice package manager beacuse it is tiny doesn't have any dependencies.
For Alpine enable first community repo.
management:~# cat /etc/apk/repositories
#/media/cdrom/apks
http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v3.18/main
http://mirror1.hs-esslingen.de/pub/Mirrors/alpine/v3.18/community# apk update
apk add coredns coredns-openrcAnd Corefile is like this
cluster.kube-cluster {
hosts {
10.10.10.1 management.kube-cluster cluster.kube-cluster
10.10.10.51 master1.cluster.kube-cluster
10.10.10.52 master2.cluster.kube-cluster
10.10.10.53 master3.cluster.kube-cluster
10.10.10.71 node1.cluster.kube-cluster
10.10.10.72 node2.cluster.kube-cluster
10.10.10.73 node3.cluster.kube-cluster
10.10.10.74 node4.cluster.kube-cluster
10.10.10.75 node5.cluster.kube-cluster
}
reload
errors
log
}
. {
forward . 8.8.8.8 8.8.4.4 {
tls_servername dns.google
}
cache 30
}For additional cluster just add new stanza.
Edit init file to use Corefile check /etc/init.d/coredns file.
It already has a ${COREDNS_CONFIG} variable and we can use it and openrc it will set in the /etc/conf.d/coredns file.
It is show /etc/coredns/Corefile so just change in there.
Enable and start
rc-update add coredns default
rc-service coredns startWildcard record
Add this content
cluster.dev { file /etc/coredns/cluster.dev reload errors log }
admin.cluster.dev. equal to admin@cluster.dev mail address, check SOA.
@ 3600 IN SOA cluster.dev. admin.cluster.dev. (
1 ; serial
7200 ; refresh (2 hours)
3600 ; retry (1 hour)
1209600 ; expire (2 weeks)
3600 ; minimum (1 hour)
)
* IN A 10.1.2.10Now every request like www.cluster.dev or test.cluster.dev show same IP.
This is very useful for our ingress. Now ingress control virtual host names.
Redirect DNS
. {
forward . 8.8.8.8 8.8.4.4 {
tls_servername dns.google
}
cache 30
}Use own DNS
Edit /etc/resolv.conf file and add this line
nameserver 10.10.10.1