DNS name resolution intermittent

I have kubernetes 1.13 running on Ubuntu 16.04.5 with flannel as the networking model. I have one master node and one worker node. I installed everything via kubeadm.

The problem is that when running nslookup, the name doesn’t always resolve or rather it hardly ever resolves. Perhaps 1 in 5 attempts will resolve.

kubectl exec -ti busybox -- nslookup postgres.kong
Server:    10.96.0.10
Address 1: 10.96.0.10

Name:      postgres.kong
Address 1: 192.168.0.18 postgres-0.postgres.kong.svc.cluster.local

and then immediately running it again outputs as follows

kubectl exec -ti busybox -- nslookup postgres.kong
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

nslookup: can't resolve 'postgres.kong'
command terminated with exit code 1

The busybox I am using is version 1.28 as I know about the dns issues with versions > 1.28

Any ideas on what could be causing the intermittent resolution?

Edit:

After some investigation, it seems that the coredns pod running on the master node isn’t receiving the DNS records for new pods.

Any ideas on a fix for that? Google has not been very fruitful with the updated issue.