Сердечники терпят крах из-за обнаружения петли

Мы сталкиваемся с очень странной проблемой с неудачными сердечниками в kubernetes: сердечки всегда поражают состояние: CrashLoopBackOff

версия coredns: 1.2.2версия kubernetes: v1.12.3версия докера: 18.06.1-ceОПЕРАЦИОННЫЕ СИСТЕМЫ: CentOS Linux release 7.5.1804 (Core)CNI: weave 2.5.0

Когда мы загружаем kubernetes с kubeadm все работает нормально, стручки Cornns работают, Kube-DNS работает, как и ожидалось. Как только мы перезагружаем сервер, cornns pods начинает зависать со следующим сообщением в журналах:

[root@qa065 ~]# kubectl logs coredns-576cbf47c7-6vxd4 -n kube-system
.:53
2018/12/12 13:33:16 [INFO] CoreDNS-1.2.2
2018/12/12 13:33:16 [INFO] linux/amd64, go1.11, eb51e8b
CoreDNS-1.2.2
linux/amd64, go1.11, eb51e8b
2018/12/12 13:33:16 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769
2018/12/12 13:33:22 [FATAL] plugin/loop: Seen "HINFO IN 7087784449798295848.7359092265978106814." more than twice, loop detected

Мы определили, что плагин loop of coredns deceted loop и, следовательно, вышел, но мы не можем найти, где находится этот цикл. Другими словами, нигде не определен цикл, касающийся DNS в хост-системе. - мы не используем systemd-resolved совсем. - наш сервис kubelet использует оригинальные /etc/resolv.conf файл - наш /etc/resolv.conf Файл не содержит ничего относительно: localhost, 127.0.0.0/53, :::1

Наши cornns см выглядит следующим образом:

[root@qa065 ~]# kubectl describe cm coredns -n kube-system
Name:         coredns
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
Corefile:
.:53 {
    errors
    health
    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       upstream
       fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    proxy . /etc/resolv.conf
    cache 30
    loop
    reload
    loadbalance
}

Events:  <none>

Когда мы удаляем loop из coredns cm модули coredns запускаются и работают без проблем, но связь между модулями перестает работать (kube-dns потерял ep и не может разрешить имена служб в ips). например у нас есть 2 модуля, которые должны общаться друг с другом (сервер Prometheus + графана), и это не работает после loop удаляется из см.

Мы также попытались: - исключить localhost (наверняка) из вышестоящего DNS:

proxy . /etc/resolv.conf {
     exclude 127.0.0.0/8
}
  • добавление IP-адреса DNS-сервера вместо /etc/resolv.conf файл в cornns смproxy . <DNS_IP_ADDR>

  • проверил конфигурацию кублета:

[root@qa078 network-scripts]# cat /var/lib/kubelet/config.yaml | grep resolv

resolvConf: /etc/resolv.conf

Любые предложения / идеи будут очень признательны.

0 ответов

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