Я пытался собрать 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, но результат был таким же.