pod/service拒绝了你的请求

2020-11-16 17:39:28 浏览数 (1)

最近遇到一个很有代表性的问题:servicepod 都正常,而且在pod内部 curl 0.0.0.0 也正常,但是curl pod IP,curl service IP 就有问题,提示 connection refused

进一步调查发现网络插件,节点都是正常的,而且也没有整那些 istio 之类的高端操作。

最后拉上大佬一起分析发现,发现问题是:容器本身只监听了 localhost

所以问题就来了,为啥只监听 localhost 会有问题? localhost 到底是个啥?

image.pngimage.png

于是我问了神奇的海螺,它告诉我: localhost 只是一个域名,根据 host 文件,一般会指向 127.0.0.1。但 127.0.0.1 是一个自闭的孩子,它只接收本机的IP。也就是说,外部的流量进不了里面。

image.pngimage.png

所以,pod 虽然正常,但是通过 pod ip ,service ip 都无法访问到它。

这是不是像极了产品经理向研发提交了一个需求,但是他的回复是:

image.pngimage.png

所以,回到本题。要解决这个问题,得让应用变得开放,监听 0.0.0.0 即可。0.0.0.0 表示内外网都可以访问到。

image.pngimage.png

参考链接

  1. 监听不同ip地址的差异

0 人点赞