У меня есть 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: чтение: нет маршрута к хосту
Я пытаюсь понять, можно ли в любом случае добавить маршрут к модулям по умолчанию, но не настолько знаком с ними, чтобы исправить это.
Пожалуйста, предложите. Дайте мне знать, если потребуется какая-либо другая информация.
Спасибо
Судхир