kubernetes - 法兰绒的 L3 未命中和找不到路线

标签 kubernetes iptables flannel

所以我有一个 Kubernetes 集群,我使用 Flannel 作为覆盖网络。它一直运行良好(实际上将近一年)然后我修改了一个服务以拥有 2 个端口,突然间我得到了一个完全不同的服务,一个以前工作但我没有编辑的服务:

<Timestamp> <host> flanneld[873]: I0407 18:36:51.705743 00873 vxlan.go:345] L3 miss: <Service's IP>
<Timestamp> <host> flanneld[873]: I0407 18:36:51.705865 00873 vxlan.go:349] Route for <Service's IP> not found 

这有共同的原因吗?我正在使用 Kubernetes 1.0.X 和 Flannel 0.5.5,我应该提到只有一个节点有这个问题,其余节点都很好。坏节点的 kube-proxy 也说它找不到服务的端点。

最佳答案

有时 flannel 会改变它的子网配置...如果 IP 和 MTU 来自 cat /run/flannel/subnet.env,你可以告诉它。不匹配 ps aux | grep docker (或 cat /etc/default/docker )...在这种情况下,您需要重新配置 docker 以使用新的 flannel 配置。

首先你必须删除 docker 网络接口(interface)

sudo ip link set dev docker0 down
sudo brctl delbr docker0

接下来,您必须重新配置 docker 以使用新的 flannel 配置。
注意:有时必须手动完成此步骤(即读取/run/flannel/subnet.env 的内容,然后更改 /etc/default/docker )
source /run/flannel/subnet.env

echo DOCKER_OPTS=\"-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}\" > /etc/default/docker

最后重启docker
sudo service docker restart

关于kubernetes - 法兰绒的 L3 未命中和找不到路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36484714/

相关文章:

docker - Kubernetes 使用 flannel 创建容器时卡在 "ContainerCreating"-state

service - Kubernetes 服务保持挂起状态

linux - iptables 更改目标地址后路由

nginx - 使用kubernetes入口时Nginx返回状态400

linux - 重定向后从 iptables 检索原始目的地

ssh - docker容器中基于端口的路由

kubernetes - 访问 Kubernetes clusterIP 服务时请求超时

docker - 法兰绒和 docker 不启动

nginx - 用于 kubernetes 的 Ingress-nginx 用于Vault。怀疑缺乏成功的健康检查

kubernetes - 带有 minio-service 的 kubernetes 上的 gitlab-ci 缓存不再工作