L3 miss 和 Route not Found for flannel
L3 miss and Route not Found for 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 会改变它的子网配置...如果来自 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 以使用新的 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 集群,我正在使用 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 会改变它的子网配置...如果来自 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 以使用新的 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