Мисс 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
Другие вопросы по тегам