新装的 k8s 网络 pod 无法 ping 通 svc

2021-05-28 13:29:05 +08:00
 defunct9
奇怪的问题,如果部署一个 nginx 的 svc,然后用 kubectl run curl --image=radial/busyboxplus:curl -i --tty --rm,启动一个临时 pod,在里面 ping nginx-svc 不通,但是 ping nginx-svc.default 是通的。如果换个 pod,kubectl run curl --image=busybox -i --tty --rm,在里面 ping nginx-svc 就通了。

如果换到阿里的 k8s 的 ack,起这个 busyboxplus:curl,在里面 nginx-svc 是通的,这是什么古怪问题,有人遇到过吗?
4824 次点击
所在节点    Kubernetes
32 条回复
raysonx
2021-05-28 16:42:01 +08:00
kube-proxy 默认的 backend 是 iptables,通过 DNAT 做的转发。因为只转发了 service 的端口,你是 ping 不通的。
如果用 ipvs backend,service 的 ip 会自动赋给所有 node 的 ipvs 虚拟网卡,是可以 ping 通的。
如果是有些 node 通有些不通,可能是 cni 有问题,或者是那个节点的 kube-proxy 没启动。
raysonx
2021-05-28 16:45:12 +08:00
楼主提供的信息太少了,单纯这样也只是猜测。不如开 SSH 让我上去看看 ( doge )
iphoneXr
2021-05-28 16:55:01 +08:00
开 ssh,让我上去看看
KaynW
2021-05-28 17:00:25 +08:00
没头绪, 开 ssh, 让我上去看看
masha
2021-05-28 17:06:04 +08:00
@defunct9
不是,我的意思是你看看这个 https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#known-issues,dns search 记录的问题。从你的现象来看就是从 search 记录找不到*.default 这个后缀。 我印象里以前也遇到过这个问题,不过不搞 k8s 比较久了没清晰记忆了。
defunct9
2021-05-28 17:34:04 +08:00
不用猜了,busybox 的 bug,升级过的 busybox 就是好的。所以么,不要随便用 radial/busyboxplus:curl 这个镜像。另外,这个镜像在阿里的 ack 居然是好的,猜不透原因。
julyclyde
2021-05-28 17:57:09 +08:00
clusterIP 本来就不是让你 ping 的
shyy228
2021-05-28 18:10:33 +08:00
开 ssh,我上去看看
mritd
2021-05-28 18:59:18 +08:00
coredns 默认域有问题
skies457
2021-05-28 23:07:37 +08:00
可能是 ndots 的问题,试试在 /etc/resolv.conf 里加上 options ndots:5

https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html
simo
2021-05-29 10:44:54 +08:00
开 ssh,我上去看看看不懂
mogging
2021-11-12 13:01:38 +08:00
上 nodelocaldns 试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/779800

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX