首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何进入CoreDNS pod kuberrnetes?

如何进入CoreDNS pod kuberrnetes?
EN

Stack Overflow用户
提问于 2020-03-13 15:01:42
回答 2查看 3.8K关注 0票数 3

我有一个运行中的k8s集群,其中包含两个CoreDNS副本。但是当我尝试输入POD的bash提示符时,它将我抛出下面的错误

# kubectl exec -it coredns-5644d7b6d9-285bj -n kube-system sh error: Internal error occurred: error executing command in container: failed to exec in container: failed to start exec "94f45da89fa5493a8283888464623788ef5e832dc31e0d89e427e71d86391fd6": OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"sh\": executable file not found in $PATH": unknown

但我可以毫无问题地登录到其他pods。我尝试使用内核进程ID的nsenter,它可以工作,但它只适用于网络相关的开放,例如,

# nsenter -t 24931 -n ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 3: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP group default link/ether 7a:70:99:aa:53:6c brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.0.2/32 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::7870:99ff:feaa:536c/64 scope link valid_lft forever preferred_lft forever

如何使用kubectl进入这个pod并摆脱这个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-24 07:14:00

您可以按照这里的说明使用sidecar模式:https://support.rancher.com/hc/en-us/articles/360041568712-How-to-troubleshoot-using-the-namespace-of-a-container#sidecar-container-0-2

简而言之,这样做是为了找到正在运行coredns pod的节点:

代码语言:javascript
复制
kubectl -n kube-system get po -o wide | grep coredns

通过ssh连接到其中一个节点,然后:

代码语言:javascript
复制
docker ps -a | grep coredns

将Container ID复制到剪贴板并运行:

代码语言:javascript
复制
ID=<paste ID here>
docker run -it --net=container:$ID --pid=container:$ID --volumes-from=$ID alpine sh

您现在将进入"sidecar“容器,可以四处查看。也就是说。

代码语言:javascript
复制
cat /etc/coredns/Corefile
票数 4
EN

Stack Overflow用户

发布于 2020-03-13 16:52:50

如果您正在尝试检查Corefile,那么您可以运行下面的

代码语言:javascript
复制
kubectl get cm coredns -n kube-system -o yaml
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60666170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档