连接到CoreDNS pod在microk8s



对于一些故障排除,我想连接到我的coredns pod。这可能吗?

$ microk8s kubectl get pod --namespace kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
hostpath-provisioner-5c65fbdb4f-w6fmn     1/1     Running   1          7d22h
coredns-7f9c69c78c-mcdl5                  1/1     Running   1          7d23h
calico-kube-controllers-f7868dd95-hbmjt   1/1     Running   1          7d23h
calico-node-rtprh                         1/1     Running   1          7d23h

当我尝试,我得到以下错误味精:

$ microk8s kubectl --namespace kube-system  exec --stdin --tty coredns-7f9c69c78c-mcdl5 -- /bin/bash
error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "f1d08ed8494894d1281cd5c43dee36119225ab1ba414def333659538e5edc561": OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "/bin/bash": stat /bin/bash: no such file or directory: unknown

User AndD已经在评论中提到了:

Coredns Pod没有外壳,我想。看看下面这个:如何进入CoreDNS pod kuberrnetes?

是的。这个图像没有外壳。你可以在这个线程中阅读更多关于这种情况的信息:

镜像不包含shell。日志可以kubectl

你已经问了:

我想连接到我的coredns pod,这是可能的吗?

理论上是可以的,但是你需要用docker来解决这个问题。答案如下:简而言之,这样做是为了找到一个正在运行coredns pod的节点:

kubectl -n kube-system get po -o wide | grep coredns

ssh到其中一个节点,然后:

docker ps -a | grep coredns

复制容器ID到剪贴板并运行:

ID=<paste ID here>
docker run -it --net=container:$ID --pid=container:$ID --volumes-from=$ID alpine sh

现在您将进入"sidecar"容器,可以到处戳。例如

cat /etc/coredns/Corefile

另外,您可以使用kubectl检查日志。另请参阅有关DNS调试的官方文档。

相关内容

  • 没有找到相关文章

最新更新