Фланцевая сеть наложения проводника Kubernetes на виртуальных машинах, заблокированных kubefirewall

Мне интересно, смог ли кто-нибудь правильно запустить Kubernetes через Wireguard VPN. Я создал кластер из двух узлов на двух виртуальных машинах, связанных проводной защитой. Главный узел с полной плоскостью управления работает нормально и может принимать рабочие узлы через интерфейс wireguard. Я установил nodeip для kubelet для ip wireguard, а также установил аргумент iface для фланелевого соединения, чтобы использовать интерфейс wireguard вместо значения по умолчанию. Это, кажется, работает хорошо до сих пор.

Проблема возникает, когда я пытаюсь присоединить рабочий узел к кластеру с помощью команды соединения. Обратите внимание, что я также отредактировал ip узла kubelet, чтобы он стал проводным ip на рабочем узле.

При присоединении весь трафик к узлу сбрасывается брандмауэром Kubernetes. Под брандмауэром kubernetes я имею в виду, что если вы проверите iptables после выполнения команды соединения на рабочем узле, вы увидите KUBE-FIREWALL, который отбрасывает все отмеченные пакеты. Брандмауэр является стандартным, так же как и на главном, но я предполагаю, что часть, которую я пропускаю, - это то, что нужно сделать, чтобы поток трафика проходил по рабочему узлу после присоединения к главному узлу.

Я не могу даже пинговать google.com или общаться с мастером через туннель Wireguard. Стручки не могут быть запланированы либо. Я вручную удалил правило KUBE-FIREWALL в качестве теста, который затем позволяет планировать модули и направлять регулярный трафик на рабочий узел, но Kubelet быстро воссоздает правило примерно через минуту.

Я думаю, что маршрут должен быть создан до объединения или что-то в этом роде. Кто-нибудь пробовал это раньше, будет очень признателен за любые предложения по этому поводу.

1 ответ

Получив некоторую помощь, я понял, что проблема связана с Wiregaurd. В частности, при запуске wg-quick в качестве службы, которая, очевидно, создает правило ip, которое направляет ВСЕ исходящий трафик через интерфейс wg0, кроме фонового защищенного канала WG. Это вызывает проблемы при попытке подключить работника к кластеру, поэтому будет просто работать вручную создание и запуск интерфейса wg0 с помощью чего-то подобного приведенному ниже.

ip link add dev wg0 type wireguard
ip addr add 10.0.0.4/24 dev wg0
wg addconf wg0 /etc/wireguard/wg0.conf
ip link set wg0 up
Другие вопросы по тегам