Рейтинг:0

kubernetes coredns находится в состоянии CrashLoopBackOff с ошибкой «серверы имен не найдены»

флаг ao

Я пытался собрать kubernetes с помощью kubeadm на своем чистом сервере с containerd в качестве cri, но мне показалось, что coredns не запустился после установки cni (weave-net).

Два контейнера coredns теперь находятся в состоянии «CrashLoopBackOff», и их журналы:

плагин/вперед: серверы имен не найдены

И описание «kubectl описать pod» выглядит следующим образом:

События:
  Тип Причина Возраст от сообщения
  ---- ------ ---- ---- -------
  Предупреждение FailedScheduling 4m52s (x9 over 13m) доступны узлы планировщика по умолчанию 0/1: 1 узел (узлы) имел дефект {node.kubernetes.io/not-ready: }, который модуль не допускал.
  Обычный Запланировано 4m7s default-scheduler Успешно назначен kube-system/coredns-58cf647449-8pq7k для k8s
  Обычный Получено 3м13с (x4 больше 4м6с) kubelet Образ контейнера "localhost:5000/coredns:v1.8.4" уже присутствует на машине
  Обычный Создан 3 мин 13 с (x4 вместо 4 мин 6 с) kubelet Создан контейнер coredns
  Обычный Запущено 3 мин 13 с (x4 за 4 мин 6 с) kubelet Запущен контейнер coredns
  Предупреждение Неисправный 3m13s kubelet Проверка готовности не удалась: получить «http://10.32.0.3:8181/ready»: набрать tcp 10.32.0.3:8181: подключиться: соединение отклонено
  Предупреждение BackOff 2m54s (x12 over 4m5s) kubelet Back-off перезапуск неудачного контейнера

Если я добавлю некоторые настройки, такие как «nameserver 8.8.8.8» в /etc/resolv.conf, запустятся модули coredns. Однако в настоящее время я вообще не использую никаких внешних DNS, а с Docker в качестве cri, coredns работал хорошо, хотя в /etc/resolv.conf не было никаких настроек.

Можно ли решить эту проблему, не устанавливая какой-либо вышестоящий DNS-сервер в resolv.conf?

Информация о сервере:

ОС: RedHat Enterprise Linux 8.4
кри: контейнерд 1.4.11
cni: плетение-сетка 1.16
инструменты: kubeadm, kubectl, kubelet 1.22.1

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

Рейтинг:1
флаг ao

Причина заключалась в том, что coredns по умолчанию имеет параметр переадресации в своей ConfigMap. Он пытался перенаправить запросы на вышестоящий DNS-сервер, хотя в /etc/resolv.conf нет настроек DNS.

# kubectl edit configmap coredns -n kube-system

После удаления следующего раздела он запустился и работал нормально.

    вперед . /etc/resolv.conf {
       max_concurrent 1000
    }

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

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