如何解决端口443上没有主机的路由
我们已经建立了一个裸机非云kubernetes集群,该集群具有通过hostNetwork: true
指令绑定到端口443的nginx-ingress控制器。
重新启动后,我们遇到一个奇怪的“没有通往主机的路由”错误:
$ curl http://127.0.0.1:443
curl: (7) Failed connect to 127.0.0.1:443; No route to host
$ curl http://127.0.0.1:444
curl: (7) Failed connect to 127.0.0.1:444; Connection refused
我永远都不会想到这样的错误可能在端口级甚至127.0.0.1上发生。
有趣的是,curl -g http://[::1]:443
确实有效;-)
使用lsof
,我确实看到Nginx在许多进程中都在监听端口443。我不知道那是可能的。显然,Linux始终没有这种机制SO_REUSEPORT
来实现针对子工作进程的高效网络流量。请参阅https://lwn.net/Articles/542629/
$ kubectl version
Client Version: version.Info{Major:"1",Minor:"19",GitVersion:"v1.19.0",GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50",GitTreeState:"clean",BuildDate:"2020-08-26T14:30:33Z",GoVersion:"go1.15",Compiler:"gc",Platform:"linux/amd64"}
Server Version: version.Info{Major:"1",Minor:"18",GitVersion:"v1.18.6",GitCommit:"dff82dc0de47299ab66c83c626e08b245ab19037",BuildDate:"2020-07-15T16:51:04Z",GoVersion:"go1.13.9",Platform:"linux/amd64"}
我们正在使用法兰绒作为CNI网络覆盖图,
quay.io/coreos/flannel:v0.12.0-amd64
Nginx入口图像:
k8s.gcr.io/ingress-Nginx/controller:v0.35.0@sha256:fc4979d8b8443a831c9789b5155cded454cb7de737a8b727bc2ba0106d2eae8b
我该怎么做进一步排除故障?
我已经删除了整个ingress-Nginx
名称空间,但仍然会发生这种情况。
lsof
未显示443的任何监听。
操作系统:RedHat Enterprise Linux 7.8
防火墙已关闭。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。