Get contents of /etc/resolv.conf of coredns pod in kubernetes
Asked Answered
D

1

6

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.

$>kubectl exec kubia-manual-v2 -- cat /etc/resolv.conf

Output: nameserver 10.96.0.10

$>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.

Daughtry answered 30/1, 2021 at 11:0 Comment(2)
look for the image that is being used by the core-dns pod, mostly likely it doesn't have the cat binary with the image.Fail
Either install cat package or check if core-dns pod has head or tail package which can also be used to print file contents.Medium
D
6

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.

Dita answered 30/1, 2021 at 16:31 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.