Мисс L3 и маршрут не найден для фланели
Итак, у меня есть кластер 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-прокси плохого узла также говорит, что не может найти конечную точку сервиса.
1 ответ
Когда-нибудь фланель изменит свою конфигурацию подсети... вы можете сказать это, если IP и MTU из cat /run/flannel/subnet.env
не совпадает ps aux | grep docker
(или же cat /etc/default/docker
)... в этом случае вам нужно будет перенастроить докер для использования новой фланелевой конфигурации.
Сначала вы должны удалить сетевой интерфейс докера
sudo ip link set dev docker0 down
sudo brctl delbr docker0
Затем вам нужно перенастроить докер для использования новой фланелевой конфигурации.
Примечание: иногда этот шаг должен быть выполнен вручную (т.е. прочитайте содержимое /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
Наконец, перезапустите докер
sudo service docker restart