无法在 IPv4 上访问 Kubernetes 服务
Kubernetes service not accessible on IPv4
我们目前有以下 Kubernetes 设置(v1.13.1,使用 kubeadm
设置)以及它们之间的连接设置:
- 主节点(裸机)
- 5 个工作节点(裸机)
- 2 个工作节点(云)
- 访问集群之间没有代理,目前我们通过
hostname:NodePort
访问服务
我们在 2 个云工作节点上通过 NodePort
访问服务时遇到问题。发生的情况是服务可以通过 IPv6 访问,但不能通过 IPv4 访问:
- IPv6:
远程登录 localhost6 30005
正在尝试 ::1...
连接到 localhost6。
转义字符是'^]'。
- IPv4:
远程登录 localhost4 30005
正在尝试 127.0.0.1...
事实是两者都在裸机节点上工作。如果我使用 netstat -napl | grep 30005
,我可以看到 kube-proxy
正在侦听此端口 (tcp6
)。我认为这意味着它不监听 tcp
,但显然情况并非如此(我在裸机工作节点上有相同的图片):
tcp6 7 0 :::30005 :::* LISTEN 24658/kube-proxy
我还了解到服务正在使用 IPv6,但基于裸机工作节点,似乎在那里使用 IPv4 也不会有问题。
知道什么会导致该问题以及如何解决它吗?
谢谢你和最诚挚的问候,
博斯特扬
如果有人偶然发现同样的问题,flannel
网络覆盖的固件上未打开的端口存在问题:
8285 UDP
- flannel UDP 后端
8472 UDP
- 法兰绒 vxlan 后端
我们目前有以下 Kubernetes 设置(v1.13.1,使用 kubeadm
设置)以及它们之间的连接设置:
- 主节点(裸机)
- 5 个工作节点(裸机)
- 2 个工作节点(云)
- 访问集群之间没有代理,目前我们通过
hostname:NodePort
访问服务
我们在 2 个云工作节点上通过 NodePort
访问服务时遇到问题。发生的情况是服务可以通过 IPv6 访问,但不能通过 IPv4 访问:
- IPv6: 远程登录 localhost6 30005 正在尝试 ::1... 连接到 localhost6。 转义字符是'^]'。
- IPv4: 远程登录 localhost4 30005 正在尝试 127.0.0.1...
事实是两者都在裸机节点上工作。如果我使用 netstat -napl | grep 30005
,我可以看到 kube-proxy
正在侦听此端口 (tcp6
)。我认为这意味着它不监听 tcp
,但显然情况并非如此(我在裸机工作节点上有相同的图片):
tcp6 7 0 :::30005 :::* LISTEN 24658/kube-proxy
我还了解到服务正在使用 IPv6,但基于裸机工作节点,似乎在那里使用 IPv4 也不会有问题。
知道什么会导致该问题以及如何解决它吗?
谢谢你和最诚挚的问候, 博斯特扬
如果有人偶然发现同样的问题,flannel
网络覆盖的固件上未打开的端口存在问题:
8285 UDP
- flannel UDP 后端8472 UDP
- 法兰绒 vxlan 后端