Skip to main content

Cluster Troubleshooting

Kubernetes DNS Error: curl: (6) Could not resolve host

The error "curl: (6) Could not resolve host" typically indicates that the DNS server in your Kubernetes cluster cannot resolve the internal service name.

Here are a few steps to troubleshoot and resolve this issue:

Check cluster component status

Check if all the cluster components are in running state.

kubectl get po -n kube-system

Redeploy Calico Pods

If you are running calico networking plugin, you could try re-deploying the calico pods using the following command.

kubectl delete pods -n kube-system -l k8s-app=calico-node
⚠️
Note: Calico uses a component called Felix, which runs on each node and is responsible for managing the network policies and routing for that node. If there are not enough CPU and memory resources available on a node, Felix may not be able to function properly, leading to networking issues within the cluster.

Troubleshoot CoreDNS Deployment

Check CoreDNS pod logs

kubectl logs -n kube-system -l k8s-app=kube-dns

Try restarting the CoreDNS deployment using the following command.

kubectl -n kube-system rollout restart deployment coredns

Ensure that the CoreDNS pods are running correctly. Use the following command to check the status of the CoreDNS pods

kubectl get pods -n kube-system -l k8s-app=kube-dns

Check if the CoreDNS pods are overused

kubectl top pods -n kube-system -l k8s-app=kube-dns

Verify that the nodes that host the CoreDNS pods aren't overused

kubectl top nodes
⚠️
If the nodes running CoreDNS pods are facing resource constraints, particularly CPU and memory, it can lead to DNS resolution issues and impact the overall functionality of CoreDNS