L3 miss和找不到法兰绒的路线

时间:2016-04-07 18:47:19

标签: kubernetes iptables flannel

所以我有一个Kubernetes集群,我正在使用Flannel作为覆盖网络。它一直工作正常(实际上差不多一年)然后我修改了一个服务,有两个端口,突然间,我得到了一个完全不同的服务,一个以前工作,我没有编辑:

<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也说它无法找到服务的端点。

1 个答案:

答案 0 :(得分:4)

有时法兰绒会改变它的子网配置......如果cat /run/flannel/subnet.env的IP和MTU与ps aux | grep docker(或cat /etc/default/docker)...不匹配,你可以告诉它如果你需要重新配置docker以使用新的flannel配置。

首先,您必须删除docker网络接口

sudo ip link set dev docker0 down
sudo brctl delbr docker0

接下来,您必须重新配置docker以使用新的法兰绒配置 注意:有时这一步必须手动完成(即读取/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