We are going to be adding a host alias for example.com in this example by adding the following to the coredns configmap:

		hosts custom.hosts example.com {
            1.2.3.4 example.com
            fallthrough
        }

For multiple hosts

       hosts custom.hosts example.com test.com {
            1.2.3.4 example.com
            6.6.6.6 test.com
            fallthrough
        }

Start by editing the coredns configmap:

kubectl -n kube-system edit configmap/coredns



apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
        hosts custom.hosts example.com test.com {
            1.2.3.4 example.com
            6.6.6.6 test.com
            fallthrough
        }
    }


Force CoreDNS to reload the ConfigMap by entering:

kubectl delete pod --namespace kube-system -l k8s-app=kube-dns


Performing an nslookup from a pod should show the new IP address for example.com


root@ssh-server-5bd5774cf7-fgvt4:/# nslookup example.com
Server:		10.96.0.10
Address:	10.96.0.10#53

Name:	example.com
Address: 1.2.3.4

References

  • No labels