I am new to k8 and I am learning how DNS works inside a k8 cluster. I am able to get the contents of /etc/resolv.conf
of a random pod in the default namespace but I am unable to get the contents /etc/resolv.conf
of coredns pod in kube-system
namespace.
gt;kubectl exec kubia-manual-v2 -- cat /etc/resolv.conf
Output:
nameserver 10.96.0.10
gt;kubectl exec coredns-74ff55c5b-c8dk6 --namespace kube-system -- cat /etc/resolv.conf
Output:
OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "cat": executable file not found in $PATH: unknown
command terminated with exit code 126
It looks like the cat
system binary is not present in the $PATH
. So, I wanted to know how can I get the contents of /etc/resol.conf
of coredns pod.
Coredns is using scratch as the base layer running it's coredns binary. You can see the Dockerfile here for reference.
You can follow the instructions in this SO post to copy busybox into your coredns container and that will give you the ability to play around it. Keep in mind that you will probably have to ssh into the k8s node running this container to make this work.