nginx-ingress controller throws this DNS resolution error. context: ngx.timer

4/15/2019

Our nginx-ingress log is continuously filled with this error message:

 dns.lua:61: resolve(): server returned error code: 3: name error, context: ngx.timer

We created the Kubernetes cluster with Kubeadm which uses CoreDNS by default.

/data # kubectl get pods -n kube-system
NAME                                                                    READY   STATUS             RESTARTS   AGE
calico-node-8jr7t                                                       2/2     Running            2          4d22h
calico-node-cl5f6                                                       2/2     Running            4          4d22h
calico-node-rzt28                                                       2/2     Running            2          4d22h
coredns-fb8b8dccf-n68x9                                                 1/1     Running            3          3d23h
coredns-fb8b8dccf-x9wr4                                                 1/1     Running            1          3d23h

It also has a kube-dns service that points to the core-dns pods.

kube-system   kube-dns                                           ClusterIP      10.96.0.10       <none>                                                     53/UDP,53/TCP                 7m29s

I can't find anything else in the logs that would help me resolve this issue.

UPDATE:

We had a service with externalName as suggested here > https://github.com/coredns/coredns/issues/2324#issuecomment-484005202

-- Venkatesh Nannan
kubernetes
nginx-ingress

1 Answer

5/15/2019

As suggested in this comment, we had a service with type "ExternalName". https://github.com/coredns/coredns/issues/2324#issuecomment-484005202

Once we deleted this service, we stopped getting this error. Using IP address instead of DNS name should work as well but I never tried it.

-- Venkatesh Nannan
Source: StackOverflow