Да, DNS на каждом узле является нормальным в openshift.
Похоже, что для развертывания в ANSILSHIFT развертывание служб dnsmasq
на каждом узле является нормальным явлением.
Подробности.
В качестве примера того, как это может повлиять на ситуацию, приведено следующее https://github.com/openshift/openshift-ansible/pull/8187.В любом случае, если dnsmasq локального узла по какой-то причине действует некорректно, это не позволит контейнерам, работающим на этом узле, правильно разрешать адреса других контейнеров в кластере.
Взгляд глубже на "дымящую пушку" dnsmasq
После проверки на отдельном узле я обнаружил, что на самом деле процесс действительно ограничен портом 53, и это dnsmasq.Следовательно,
[enguser@worker0-sass-on-prem-origin-3-10 ~]$ sudo netstat -tupln | grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 675/openshift
И, dnsmasq работает локально:
[enguser@worker0-sass-on-prem-origin-3-10 ~]$ ps -ax | grep dnsmasq
4968 pts/0 S+ 0:00 grep --color=auto dnsmasq
6994 ? Ss 0:22 /usr/sbin/dnsmasq -k
[enguser@worker0-sass-on-prem-origin-3-10 ~]$ sudo ps -ax | grep dnsmasq
4976 pts/0 S+ 0:00 grep --color=auto dnsmasq
6994 ? Ss 0:22 /usr/sbin/dnsmasq -k
Последний ключ, сам resolv.conf даже добавляетлокальный IP-адрес как сервер имен ... И это, очевидно, заимствовано в контейнерах, которые запускаются.
nameserver updated by /etc/NetworkManager/dispatcher.d/99-origin-dns.sh
Generated by NetworkManager
search cluster.local bds-ad.lc opssight.internal
NOTE: the libc resolver may not support more than 3 nameservers.
The nameservers listed below may not be recognized.
nameserver 10.1.176.129
Решение (в моем конкретном случае)
В моем случае это происходилопотому что локальный сервер имен использовал ifcfg
(вы можете увидеть эти файлы в / etc / sysconfig / network-scripts /) с
[enguser@worker0-sass-on-prem-origin-3-10 network-scripts]$ cat ifcfg-ens192
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=50936212-cb5e-41ff-bec8-45b72b014c8c
DEVICE=ens192
ONBOOT=yes
Однако мои виртуально настроенные виртуальные машины не смогли разрешить IP-адреса, предоставленные дляих в записях PEERDNS.
В конечном итоге исправление состояло в том, чтобы работать с нашим ИТ-отделом, чтобы убедиться, что у нашего авторитетного домена для наших кластеров kube есть доступ ко всем IP-адресам в нашем центре обработки данных.Общее исправление: 53 ошибок поиска ...
Если вы видите, что при записи kubectl или oc logs / exec появляется: 53 ошибок записи, то, скорее всего, ваш apiserver неспособен к сотрудничествуnube с kubelets через их IP-адрес .
Если вы видите: 53 ошибки записи в других местах, например, внутри пакетов , то это потому, что ваш модуль, используя свой собственный локальный DNS, не может разрешить внутренний IP-адрес кластераадреса.Это может быть просто потому, что у вас есть устаревший контроллер, который ищет сервисы, которые больше не существуют, или же у вас есть ошибки на уровне реализации kubernetes dns.