所以我有一个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也说它无法找到服务的端点。
答案 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