Назад | Перейти на главную страницу

Кластер Kubernetes не работает после настройки переадресации IP

Я занимаюсь исследовательским проектом, и наша конечная цель состоит в том, чтобы по сути построить кластер кубернетов, используя несколько Raspberry Pis. Я включил тот факт, что мы используем Raspberry Pis для справки, но я не думаю, что это актуально для моего вопроса.

Я новичок в сетевых технологиях, поэтому, пожалуйста, простите меня, если я задаю тривиальный вопрос.

Недавно моей задачей было настроить один из Raspberry Pis (главный) для работы в качестве сетевого моста между Интернетом и локальной сетью, к которой подключены другие Pis (рабочие).

В частности, у меня рабочие подключены к неуправляемому коммутатору, который подключен к мастеру. У всех воркеров статические IP-адреса. Мастер подключен к Интернету через интерфейс eth1 и он подключен к сетевому коммутатору через eth0. Моя цель состояла в том, чтобы в основном маршрутизировать интернет-трафик с eth0 на eth1 и наоборот.

Я считаю, что мне это удалось. Я использовал iptables, чтобы создать правила для этой конфигурации. Вот какие команды я использовал:

$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
$ sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Я включил пересылку iPv4 на главном сервере и настроил шлюз по умолчанию и DNS-серверы на рабочих. Я просто использовал первичный и вторичный DNS-серверы Google, а также eth0 IP-адрес мастера в качестве шлюза по умолчанию для рабочих. Я считаю, что это было успешно, так как я мог пинговать Google, загружать кубернеты и выполнять обновления в системе, используя apt-get.

Теперь, когда я настроил контекст этой настройки сети, мой главный вопрос заключается в том, насколько завершена эта настройка. У меня были проблемы с кубернетами, пытающимися подключить рабочих к мастеру. В частности, у него проблемы с получением шлюза по умолчанию. Вот стандартный вывод при попытке присоединиться к серверу от работника на случай, если кто-то лучше понимает.

INFO[2020-04-12T14:43:40.167158119-04:00] Starting k3s agent v1.17.4+k3s1 (3eee8ac3)   
INFO[2020-04-12T14:43:40.168078475-04:00] module overlay was already loaded            
INFO[2020-04-12T14:43:40.168178317-04:00] module nf_conntrack was already loaded       
INFO[2020-04-12T14:43:40.168234827-04:00] module br_netfilter was already loaded       
INFO[2020-04-12T14:43:40.169668407-04:00] Running load balancer 127.0.0.1:43169 -> [red:6443] 
ERRO[2020-04-12T14:43:40.858464467-04:00] unable to select an IP from default routes.  
ERRO[2020-04-12T14:43:46.124906066-04:00] unable to select an IP from default routes.  

Для справки, red - это имя хоста мастера, а IP-адрес известен работнику, как в /etc/hosts

Я уверен, что имя хоста известно, так как я могу делать такие вещи, как ssh pi@red.

Я не буду вдаваться в подробности настройки кубернетов, так как это не главная тема моего вопроса. Мне удалось заставить кластер работать, когда рабочие были напрямую подключены к моему Wi-Fi-маршрутизатору, но теперь, когда я настроил его на использование сетевого коммутатора, подключенного к мастеру, он больше не работает. Поэтому мне интересно, возможно, мне что-то не хватает в моей конфигурации. Я действительно озадачен этим, потому что не понимаю, как я мог бы загружать что-то из Интернета, если бы возникла какая-то основная проблема.

Я видел в Интернете учебники, в которых используются такие вещи, как dnsmasq, но для моих целей я установил статический IP-адрес для рабочих, поэтому я не вижу необходимости в нем, если я не использую dhcp. Любая помощь или понимание будут очень благодарны!