Рейтинг:1

Проблема с включенным разрешением DNS и кластером Microk8s

флаг gb

Мой кластер microk8s работает на виртуальной машине centos8, и у меня есть некоторые проблемы с разрешением DNS для моих модулей. Сервер имен находится в х.х.х.101 и х.х.х.100 оба могут пинговаться из модулей, и я также могу пинговать 8.8.8.8

nslookup из пода выглядит так:

root@debug-7857894f66-mnklp:/# nslookup kubernetes.default
Сервер: 10.152.183.10
Адрес: 10.152.183.10#53

Имя: kubernetes.default.svc.cluster.local
Адрес: 10.152.183.1

Конфиг coredns выглядит так:

апиВерсия: v1
данные:
  Corefile: ".:53 {\n ошибок\n здоровье {\n lameduck 5s\n }\n готово\n
    \   журнал . {\n class error\n}\n kubernetes cluster.local in-addr.arpa
    ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n}\n
    \ прометей :9153\n вперед . x.x.x.101 x.x.x.100 \n кэш 30\n
    \ цикл\n перезагрузка\n балансировка нагрузки\n}\n"
вид: карта конфигурации
метаданные:
  аннотации:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"Corefile":".:53 {\n ошибки\n здоровье {\n lameduck 5s\n}\n готов\n журнал. {\n ошибка класса\ n }\n kubernetes cluster.local in-addr.arpa ip6.arpa {\n pods insecure\n fallthrough in-addr.arpa ip6.arpa\n }\n prometheus :9153\n forward .x.x.x.101 x.x.x.100 \n кэш 30\n цикл\n перезагрузка\n балансировка нагрузки\n}\n"},"вид":"ConfigMap","метаданные":{"аннотации":{},"метки":{"addonmanager.kubernetes.io /mode":"EnsureExists","k8s-app":"kube-dns"},"name":"coredns","namespace":"kube-system"}}
  Отметка времени создания: "2021-08-31T08:57:27Z"
  этикетки:
    addonmanager.kubernetes.io/mode: SureExists
    k8s-приложение: kube-dns
  имя: Корднс
  пространство имен: kube-система
  ResourceVersion: "2420090"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  UID: 471b258a-253d-4b51-aaf7-7e934ab300d1

в /etc/resolv.conf в моих стручках выглядит так:

поиск default.svc.cluster.local svc.cluster.local cluster.local xxx.xxxxx
сервер имен 10.152.183.10
варианты точек:5

когда я смотрю логи своего kube-dns с помощью $ журналы microk8s kubectl --namespace=kube-system -l k8s-app=kube-dns Я получаю следующий ответ:

[INFO] 10.1.107.105:47549 - 5288 "AAAA IN www.google.com. udp 36 false 512" NOERROR - 0 0.000256103s
[ОШИБКА] плагин/ошибки: 2 www.google.com. AAAA: чтение udp 10.1.107.127:51486->x.x.x.101:53: чтение: нет маршрута к хосту

Служба DNS работает:

$ microk8s kubectl получить svc --namespace=kube-system
НАЗВАНИЕ ТИП КЛАСТЕР-IP ВНЕШНИЙ-IP ПОРТ(Ы) ВОЗРАСТ
[...]
kube-dns ClusterIP 10.152.183.10 <нет> 53/UDP,53/TCP,9153/TCP 21d

Доступны конечные точки DNS:

$ microk8s kubectl получить конечные точки kube-dns --namespace=kube-system
НАЗВАНИЕ КОНЕЧНЫЕ ТОЧКИ ВОЗРАСТ
куб-днс 10.1.107.127:53,10.1.107.127:53,10.1.107.127:9153 21d

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

РЕДАКТИРОВАТЬ:

Хорошо, я попробовал еще немного, и есть какое-то странное поведение, которое, я думаю, связано с тем, что я неправильно создал сердцевина файл конфигурации. Я полностью перезагрузил кластер и повторил попытку, все та же ошибка, когда я использую 8.8.8.8 или 8.8.4.4 в качестве DNS-серверов. Но когда я запускаю следующую команду: $ microk8s включить dns:x.x.x.101,x.x.x.100 наконец это работает. Затем я попытался настроить для этого с помощью $ microk8s kubectl -n kube-system редактировать configmap/coredns и добавляю оба DNS в конфиг он перестаёт работать и опять получаю ошибку: [ОШИБКА] плагин/ошибки: 2 www.google.com. AAAA: чтение udp 10.1.107.127:51486->x.x.x.101:53: чтение: нет маршрута к хосту так что не так с моей конфигурацией, которая автоматически правильно устанавливается с помощью $ microk8s включить dns:x.x.x.101,x.x.x.100 ?

2-е редактирование

Я пытался использовать dig здесь, даже когда я указываю DNS-сервер, он не работает. Есть ли причина, по которой пинг может пройти, но DNS заблокирован системой? Это происходит только на кластер микрок8с, хост-система работает, fin docker работает нормально ... вот распечатки: это изнутри стручка:

root@debug-865cb7fb4-wfhw4:/# копать www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> www.google.com
;; глобальные параметры: +cmd
;; время соединения истекло; нет доступа к серверам
root@debug-865cb7fb4-wfhw4:/# dig @x.x.x.101 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @x.x.x.101 www.google.com
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; время соединения истекло; нет доступа к серверам
root@debug-865cb7fb4-wfhw4:/# копать @8.8.8.8 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @8.8.8.8 www.google.com
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; время соединения истекло; нет доступа к серверам
root@debug-865cb7fb4-wfhw4:/# dig @x.x.x.100 www.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u5-Debian <<>> @x.x.x.100 www.google.com
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; время соединения истекло; нет доступа к серверам

а это из хост-системы:

$ копать www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> www.google.com
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 25735
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 4000
;; РАЗДЕЛ ВОПРОСОВ:
;www.google.com. В

;; РАЗДЕЛ ОТВЕТОВ:
www.google.com. 113 В А 142.250.185.228

;; Время запроса: 0 мс
;; СЕРВЕР: х.х.х.101#53(х.х.х.101)
;; КОГДА: пятница, 8 октября, 15:10:21 по центральноевропейскому летнему времени 2021 г.
;; РАЗМЕР MSG rcvd: 59



$ копать @ 8.8.8.8 www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @8.8.8.8 www.google.com
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 3924
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 512
;; РАЗДЕЛ ВОПРОСОВ:
;www.google.com. В

;; РАЗДЕЛ ОТВЕТОВ:
www.google.com. 300 В А 142.250.185.228

;; Время запроса: 34 мс
;; СЕРВЕР: 8.8.8.8#53(8.8.8.8)
;; КОГДА: пятница, 8 октября, 15:10:49 по центральноевропейскому летнему времени 2021 г.
;; РАЗМЕР MSG rcvd: 59

$ dig @x.x.x.101 www.google.com

; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @x.x.x.101 www.google.com
; (найден 1 сервер)
;; глобальные параметры: +cmd
;; Получил ответ:
;; ->>HEADER<<- код операции: QUERY, статус: NOERROR, id: 60305
;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 1, ПОЛНОМОЧИЯ: 0, ДОПОЛНИТЕЛЬНО: 1

;; ДОПОЛНИТЕЛЬНЫЙ ПСЕВДОРАЗДЕЛ:
; ЭДНС: версия: 0, флаги:; UDP: 4000
;; РАЗДЕЛ ВОПРОСОВ:
;www.google.com. В

;; РАЗДЕЛ ОТВЕТОВ:
www.google.com. 70 В А 142.250.185.228

;; Время запроса: 0 мс
;; СЕРВЕР: х.х.х.101#53(х.х.х.101)
;; КОГДА: пятница, 8 октября, 15:11:04 CEST 2021
;; РАЗМЕР MSG rcvd: 59

Я понятия не имею, что, кажется, происходит....

Mikołaj Głodziak avatar
флаг id
Какую версию Kubernetes вы использовали?
Thagor avatar
флаг gb
Я использую Kubernetes v1.22.
Mikołaj Głodziak avatar
флаг id
Пожалуйста, предоставьте файл yaml вашего модуля.
Thagor avatar
флаг gb
Я перестраиваю кластер в полностью подконтрольную мне инфраструктуру, там DNS работает.
Thagor avatar
флаг gb
Кажется, это проблема, связанная с iptables и брандмауэром на хосте, если я отключу оба, проблема исчезнет, ​​я опубликую и отвечу, как только узнаю, как правильно настроить эти инструменты.
Рейтинг:0
флаг id

Я разместил вики-ответ сообщества для лучшей видимости. Как Тагор упомянул в комментарии, проблема решена и была связана с внешним DNS:

Я перестраиваю кластер в полностью подконтрольную мне инфраструктуру, где работает DNS.

Попробуйте отключить iptables и брандмауэр на хосте и посмотрите, сможете ли вы это сделать с помощью конфигурации coredns.

Более подробную информацию о DNS вы можете найти на официальном документация.

Wytrzymały Wiktor avatar
флаг it
Привет @Тагор. Это [ответит на ваш вопрос] (https://stackoverflow.com/help/someone-answers)?
Thagor avatar
флаг gb
эй, я обновил свой первый пост, оказалось, что DNS работает, если я установил его с помощью `$ microk8s enable dns:x.x.x.100,x.x.x.101`, но как только я пытаюсь сделать это через конфигурацию coredns, он терпит неудачу, и я понятия не имею, почему.

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

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