Вот тут и началось расследование: CoreDNS не мог работать более пары секунд, выдавая следующие ошибки:
$ kubectl получить модули --all-namespaces
ПРОСТРАНСТВО ИМЕН ИМЯ ГОТОВ СТАТУС ПЕРЕЗАПУСКА ВОЗРАСТ
ingress-nginx ingress-nginx-controller-8xcl9 1/1 Работает 0 11h
ingress-nginx ingress-nginx-controller-hwhvk 1/1 Работает 0 11h
ingress-nginx ingress-nginx-controller-xqdqx 1/1 Выполняется 2 (10 ч назад) 11 ч
kube-system calico-kube-controllers-684bcfdc59-cr7hr 1/1 Работает 0 11h
kube-system calico-node-62p58 1/1 Выполняется 2 (10 ч назад) 11 ч
kube-system calico-node-btvdh 1/1 Работает 0 11h
kube-system calico-node-q5bkr 1/1 Работает 0 11h
kube-system coredns-8474476ff8-dnt6b 0/1 CrashLoopBackOff 1 (3 с назад) 5 с
kube-system coredns-8474476ff8-ftcbx 0/1 Ошибка 1 (2 с назад) 5 с
kube-system dns-autoscaler-5ffdc7f89d-4tshm 1/1 Работает 2 (10 ч назад) 11 ч
kube-system kube-apiserver-hyzio 1/1 Работает 4 (10ч назад) 11ч
kube-system kube-controller-manager-hyzio 1/1 Работает 4 (10ч назад) 11ч
kube-system kube-proxy-2d8ls 1/1 Работает 0 11h
kube-system kube-proxy-c6c4l 1/1 Работает 4 (10 ч назад) 11 ч
kube-system kube-proxy-nzqdd 1/1 Работает 0 11h
kube-system kube-scheduler-hyzio 1/1 Работает 5 (10ч назад) 11ч
kube-system kubernetes-dashboard-548847967d-66dwz 1/1 Работает 0 11h
kube-system kubernetes-metrics-scraper-6d49f96c97-r6dz2 1/1 Работает 0 11h
kube-system nginx-proxy-dyzio 1/1 Работает 0 11h
kube-system nginx-proxy-zyzio 1/1 Работает 0 11h
kube-system nodelocaldns-g9wxh 1/1 Работает 0 11h
kube-system nodelocaldns-j2qc9 1/1 Работает 4 (10 ч назад) 11 ч
kube-system nodelocaldns-vk84j 1/1 Выполняется 0 11h
kube-системный реестр-j5prk 1/1 Работает 0 11h
kube-systemRegistry-proxy-5wbhq 1/1 Выполняется 0 11h
kube-systemRegistry-proxy-77lqd 1/1 Работает 0 11h
kube-system register-proxy-s45p4 1/1 Выполняется 2 (10 ч назад) 11 ч
kubectl описать
на этом стручке не привнес многого в картину:
События:
Тип Причина Возраст от сообщения
---- ------ ---- ---- -------
Обычный Запланировано 67s default-scheduler Успешно назначено kube-system/coredns-8474476ff8-dnt6b для zyzio
Обычный Получено 25 с (x4 поверх 68 с) kubelet Образ контейнера "k8s.gcr.io/coredns/coredns:v1.8.0" уже присутствует на машине
Обычный Создан 25 с (x4 по сравнению с 68 с) kubelet Создан контейнер coredns
Нормально Запущено 25 с (x4 за 68 с) kubelet Запущен контейнер coredns
Предупреждение BackOff 6s (x11 over 66s) kubelet Back-off перезапуск неудачного контейнера
А вот просмотр логов сделал:
$ kubectl регистрирует coredns-8474476ff8-dnt6b -n kube-system
.:53
[INFO] плагин/перезагрузка: рабочая конфигурация MD5 = 5b233a0166923d642fdbca0794b712ab
CoreDNS-1.8.0
Linux/AMD64, go1.15.3, 054c9ae
[FATAL] плагин/цикл: обнаружен цикл (127.0.0.1:49048 -> :53) для зоны ".", см. https://coredns.io/plugins/loop#troubleshooting.Запрос: «ИНФО 2906344495550081187.9117452939332601176».
Здорово, что документация по устранению неполадок была связана! Я начал просматривать эту страницу и обнаружил, что действительно мой /etc/resolv.conf
содержал проблемный локальный IP сервер имен 127.0.0.53
.
Кроме того, я нашел настоящий IP-адреса DNS в /run/systemd/разрешение/resolv.conf
, но теперь вопрос: как выполнить действие, описанное в документации по устранению неполадок, говоря:
Добавьте в yaml конфигурации kubelet следующее: resolvConf: (или с помощью флага командной строки --resolv-conf устарело в версии 1.10). Ваш «настоящий» файл resolv.conf содержит фактические IP-адреса ваших вышестоящих серверов и не содержит локального/петлевого адреса. Этот флаг указывает kubelet передать подам альтернативный файл resolv.conf. Для систем, использующих systemd-resolve, /run/systemd/resolve/resolv.conf обычно является расположением «настоящего» resolv.conf, хотя это может отличаться в зависимости от вашего дистрибутива.
Итак, вопросы:
- как найти или где создать упомянутый конфиг kubelet yaml,
- на каком уровне я должен указать
resolvConf
значение и
- может ли он принимать несколько значений? У меня есть два сервера имен. Должны ли они быть заданы как отдельные записи или массив?