Kubernetes CoreDNS в CrashLoopBackOff - PullRequest
       7

Kubernetes CoreDNS в CrashLoopBackOff

0 голосов
/ 30 ноября 2018

Я понимаю, что этот вопрос задают десятки раз, но ничего не помогло мне в поиске в интернете.

Моя настройка:

CentOS Linux release 7.5.1804 (Core)
Docker Version: 18.06.1-ce
Kubernetes: v1.12.3

Установлено официальным руководством и этим: https://www.techrepublic.com/article/how-to-install-a-kubernetes-cluster-on-centos-7/

Блоки CoreDNS находятся в состоянии Error / CrashLoopBackOff.

kube-system   coredns-576cbf47c7-8phwt                 0/1     CrashLoopBackOff   8          31m
kube-system   coredns-576cbf47c7-rn2qc                 0/1     CrashLoopBackOff   8          31m

Мой /etc/resolv.conf:

nameserver 8.8.8.8

Также пробовал с моим локальным dns-resolver (маршрутизатором)

nameserver 10.10.10.1

Установка и инициализация:

kubeadm init --apiserver-advertise-address=10.10.10.3 --pod-network-cidr=192.168.1.0/16
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Я пытался решить эту проблему следующим образом: Редактирование coredns: root @ kub ~] # kubectl edit cm coredns -n kube-system и изменение

proxy . /etc/resolv.conf

непосредственно на

proxy . 10.10.10.1

или прокси.8.8.8.8

Также пытался:

kubectl -n kube-system get deployment coredns -o yaml |   sed 's/allowPrivilegeEscalation: false/allowPrivilegeEscalation: true/g' |   kubectl apply -f -

И все равно мне ничего не помогает.

Ошибка из журналов:

plugin/loop: Seen "HINFO IN 7847735572277573283.2952120668710018229." more than twice, loop detected

Другой поток - coredns pods имеют CrashLoopBackOff или состояние Error вообще не помогло, потому что я не нажал ни одного решения, которое былоописано там.Ничего не помогло.

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

$ kubectl edit cm coredns -n kube-system удалить «цикл», сохранить и выйти перезапустить главный узел.Это была работа для меня.

0 голосов
/ 26 марта 2019

Даже у меня есть такая ошибка, и мне удалось выполнить следующие действия.

Однако вы пропустили 8.8.4.4

sudo nano etc / resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

выполните следующие команды для перезапуска службы демона и докера

sudo systemctl daemon-reload

sudo systemctl restart docker

Если вы используете kubeadm, убедитесь, что вы удалили весь кластер из master и provisionснова кластер.

kubectl drain <node_name> --delete-local-data --force --ignore-daemonsets
kubectl delete node <node_name>
kubeadm reset

Как только вы подготовите новый кластер

kubectl get pods --all-namespaces

Это должно дать ниже ожидаемого результата

NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE
kube-system   calico-node-gldlr          2/2     Running   0          24s
kube-system   coredns-86c58d9df4-lpnj6   1/1     Running   0          40s
kube-system   coredns-86c58d9df4-xnb5r   1/1     Running   0          40s
kube-system   kube-proxy-kkb7b           1/1     Running   0          40s
kube-system   kube-scheduler-osboxes     1/1     Running   0          10s
0 голосов
/ 01 декабря 2018

Обычно происходит, когда сердечники не могут общаться с kube-apiserver:

Убедитесь, что ваша служба kubernetes находится в пространстве имен по умолчанию:

$ kubectl get svc kubernetes
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        130d

Тогда (возможно, у вас естьдля создания модуля):

$ kubectl -n kube-system exec -it <any-pod-with-shell> sh
# ping kubernetes.default.svc.cluster.local
PING kubernetes.default.svc.cluster.local (10.96.0.1): 56 data bytes

Также попробуйте нажать порт 443 из порта:

# telnet kubernetes.default.svc.cluster.local 443 # or
# curl kubernetes.default.svc.cluster.local:443
...