Рейтинг:0

Не удалось получить доступ к хост-компьютеру из модуля в кластере kubernetes

флаг cn
sb9

У меня есть 1 главный и 1 рабочий кластер кластера kubernetes с использованием kubeadm в среде виртуализации Fedora linux KVM с диапазоном pod cidr — 10.244.0.0/16. Использование фланелевой сетевой политики.

Главный узел: имя хоста - федкубемастер IP-адрес - 192.168.122.161 Рабочий узел: имя хоста - федкубенод IP-адрес - 192.168.122.27 (ПРИМЕЧАНИЕ. Полное доменное имя моего хоста не разрешается DNS)

$ kubectl получить узлы -o широкий
ИМЯ СТАТУС РОЛИ ВОЗРАСТ ВЕРСИЯ ВНУТРЕННИЙ-IP ВНЕШНИЙ-IP ОС-ОБРАЗ ВЕРСИЯ ЯДРА КОНТЕЙНЕР-ВРЕМЯ РАБОТЫ
Fedora Linux 35 (Workstation Edition) 5.15.16-200.fc35.x86_64 docker://20.10.12
fedkubenode Готов <нет> 2d6h v1.23.3 192.168.122.27 <нет> Fedora Linux 35 (Workstation Edition) 5.15.16-200.fc35.x86_64 docker://20.10.12

Вот мой маршрут от главного узла, рабочего узла

[admin@fedkubemaster ~]$ маршрут -n
Таблица IP-маршрутизации ядра
Шлюз назначения Флаги Генмаски Метрика Ссылка Использование Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 100 0 0 enp1s0
10.244.0.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0
10.244.1.0 10.244.1.0 255.255.255.0 УГ 0 0 0 фланель.1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 докер0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-25b1faebd814
192.168.122.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
[admin@fedkubenode ~]$ маршрут -n
Таблица IP-маршрутизации ядра
Шлюз назначения Флаги Генмаски Метрика Ссылка Использование Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 100 0 0 enp1s0
10.244.0.0 10.244.0.0 255.255.255.0 УГ 0 0 0 фланель.1
10.244.1.0 0.0.0.0 255.255.255.0 U 0 0 0 cni0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 докер0
192.168.122.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0

Я использую это определение dnsutil pod yml для тестирования моего подключения к моим хост-компьютерам.

апиВерсия: v1
вид: стручок
метаданные:
  имя: днсутилс
  пространство имен: по умолчанию
спецификация:
  контейнеры:
  - имя: dnsutils
    изображение: k8s.gcr.io/e2e-test-images/jessie-dnsutils:1.3
    команда:
      - спать
      - "3600"
    imagePullPolicy: Ифноптресент
  политика перезапуска: всегда

Вот мой ip-адрес и ip-маршрут, выводимые из модуля dnsutils.

root@dnsutils:/# IP-адрес
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
    инет 127.0.0.1/8 область хоста lo
       valid_lft навсегда
2: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default 
    ссылка/эфир 7a:50:37:bc:4b:45 brd ff:ff:ff:ff:ff:ff
    inet 10.244.1.2/24 brd 10.244.1.255 глобальная область действия eth0
       valid_lft навсегда
root@dnsutils:/# 
root@dnsutils:/# ip route show
по умолчанию через 10.244.1.1 dev eth0 
10.244.0.0/16 через 10.244.1.1 dev eth0 
10.244.1.0/24 dev eth0 ссылка на область действия ядра proto src 10.244.1.2 

Я пытаюсь выполнить nslookup и выполнить эхо-запрос на полное доменное имя хост-компьютера, но оно не разрешается. Затем я попытался выполнить ping с их соответствующим IP-адресом, в котором главный узел показывает выходные данные как отфильтрованные пакеты, а рабочий узел может отвечать с IP-адресом.

root@dnsutils:/# nslookup fedkubemaster
;; время соединения истекло; нет доступа к серверам

root@dnsutils:/# nslookup fedkubenode  
;; время соединения истекло; нет доступа к серверам
root@dnsutils:/# ping fedkubemaster
пинг: неизвестный хост
root@dnsutils:/# ping fedkubenode  
пинг: неизвестный хост
root@dnsutils:/# пинг 192.168.122.161
PING 192.168.122.161 (192.168.122.161) 56 (84) байт данных.
Из 10.244.1.1 icmp_seq=1 Пакет отфильтрован
Из 10.244.1.1 icmp_seq=2 Пакет отфильтрован
^ С
--- Статистика пинга 192.168.122.161 ---
2 пакета передано, 0 получено, +2 ошибки, 100% потери пакетов, время 1013 мс

root@dnsutils:/# пинг 192.168.122.27 
PING 192.168.122.27 (192.168.122.27) 56 (84) байт данных.
64 байта от 192.168.122.27: icmp_seq=1 ttl=64 время=0,286 мс
64 байта от 192.168.122.27: icmp_seq=2 ttl=64 время=0,145 мс

Проблема в том, что я хочу, чтобы FQDN моих хост-компьютеров можно было разрешить из Pod, но я не могу понять, как я могу это исправить. Кажется, нет пути для разрешения полного доменного имени моего хоста из модуля, что также отражается в журналах coredns. Вот ошибка.

[admin@fedkubemaster networkutils]$ kubectl logs -f coredns-64897985d-8skq2 -n kube-system
.:53
[INFO] плагин/перезагрузка: рабочая конфигурация MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.6
Linux/AMD64, Go1.17.1, 13a9191
[ОШИБКА] плагин/ошибки: 2 2603559064493035223.1593267795798361043. HINFO: чтение udp 10.244.0.2:38440->192.168.122.1:53: чтение: нет маршрута к хосту
[ОШИБКА] плагин/ошибки: 2 2603559064493035223.1593267795798361043. HINFO: чтение udp 10.244.0.2:34275->192.168.122.1:53: чтение: нет маршрута к хосту

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

Пожалуйста, предложите. Дайте мне знать, если потребуется какая-либо другая информация.

Спасибо Судхир

Рейтинг:0
флаг cn
sb9

Я смог решить свою проблему, временно отключив службу брандмауэра как на главном, так и на рабочем сервере.

[admin@fedkubemaster ~]$ sudo systemctl остановить firewalld.service
[admin@fedkubemaster ~]$ sudo systemctl отключить firewalld.service

[admin@fedkubenode ~]$ sudo systemctl остановить firewalld.service
[admin@fedkubenode ~]$ sudo systemctl отключить firewalld.service

Но то, что мне все еще нужно понять, почему, хотя все требуемые порты в соответствии с документацией kubernetes были включены, почему это вызывало эту проблему.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.