Крашен крашлоопбэк в куберне

У меня есть настройки kubernetes в ubuntu 16.04, Я использую версию Kube 1.13.1 и использовать плетение для сетей. Я инициализировал кластер с помощью:

sudo kubeadm init --token-ttl=0 --apiserver-advertise-address=192.168.88.142

и ткать:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

Все стручки, кажется, работают нормально, но coredns всегда остается в CrashLoopBackOff статус. Я прочитал в основном все решения, доступные для этого.

NAME                                READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-h5plc            0/1     CrashLoopBackOff   7          18m
coredns-86c58d9df4-l77rw            0/1     CrashLoopBackOff   7          18m
etcd-tx-g1-209                      1/1     Running            0          17m
kube-apiserver-tx-g1-209            1/1     Running            0          17m
kube-controller-manager-tx-g1-209   1/1     Running            0          17m
kube-proxy-2jdpp                    1/1     Running            0          18m
kube-scheduler-tx-g1-209            1/1     Running            0          17m
weave-net-npgnc                     2/2     Running            0          13m

Сначала я начал с редактирования файла cordens и удаления цикла. Это решает проблему, но потом я понял, что не смог пинговать www.google.com из контейнера, но мне удалось пропинговать IP-адрес google.com. Таким образом, удаление цикла не является идеальным решением.

Затем я попытался посмотреть на /etc/resolv.conf и нашел ниже содержание:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search APSDC.local

Вот обходной путь, предоставленный на странице kubernetes, который говорит, что следует избегать любого типа IP-адреса, такого как 127.0.0.1. Я не могу понять эту строку, так как этот файл создается автоматически. Как можно внести изменения в файл, чтобы сердечки могли нормально работать. Бело это бревна с сердечками:

$ kubectl logs coredns-86c58d9df4-h5plc -n kube-system

.:53
2019-01-31T17:26:43.665Z [INFO] CoreDNS-1.2.6
2019-01-31T17:26:43.666Z [INFO] linux/amd64, go1.11.2, 756749c
CoreDNS-1.2.6
linux/amd64, go1.11.2, 756749c
[INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
[FATAL] plugin/loop: Forwarding loop detected in "." zone. Exiting. See https://coredns.io/plugins/loop#troubleshooting. Probe query: "HINFO 1423429973721138313.4523734933111484351.".

Может кто-нибудь, пожалуйста, укажите мне правильное направление для решения этой проблемы. Пожалуйста помоги. Спасибо

1 ответ

Решение

Я решил эту проблему. В моем случае у меня было ниже содержание /etc/resolv.conf

nameserver     127.0.1.1

Сначала я использовал приведенную ниже команду, чтобы получить правильный IP-адрес, поскольку устройство находилось в сети клиента.

nmcli device show <interfacename> | grep IP4.DNS

После этого я обновил файл /etc/resolvconf/resolv.conf.d/head с содержанием ниже

nameserver    192.168.66.21

и затем запустите приведенную ниже команду для регенерации resolv.conf

sudo resolvconf -u

После этого у меня было ниже содержание в /etc/resolv.conf:

nameserver    192.168.66.21
nameserver    127.0.1.1

Затем я удалил coredns стручки и все работало нормально. Благодарю.

У меня была такая же проблема в ubuntu 16.04. Мой/etc/resolv.confуказал также на адрес обратной связи. Сначала я как S Andrew попытался изменитьresolv.conf файл вручную, но безуспешно.

В моем случае я решил эту проблему, отключивdnsmasq. В/etc/NetworkManager/NetworkManager.confпрокомментируйте следующую строку в разделе [main]:

[main]
#dns=dnsmasq

Dnsmasq упрощает указание сервера имен для использования для данного домена, но автоматически устанавливает адрес обратной связи, и это делает coredns разбиться.

После этого /etc/resolv.conf файл указывает на мои DNS-серверы, предоставленные моим интернет-провайдером.

Другие вопросы по тегам