DNS в кластере отвечает с задержками; coredns не стартует без интернета

Viewed 29

Периодически задержки и ошибки разрешения имён, в логах kube-dns i/o timeout к вышестоящему DNS. А на изолированном стенде coredns вообще не запускается с ошибкой no nameservers found.

1 Answers

Если upstreamNameservers не задан, kube-dns берёт серверы из /etc/resolv.conf того узла, где запущен его под. Эти серверы могут отвечать медленно или быть доступны не со всех узлов. Задайте вышестоящие серверы явно параметром upstreamNameservers:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: kube-dns
spec:
  version: 1
  settings:
    upstreamNameservers:
    - <ip-вашего-dns>

Применяйте через d8 k apply: ModuleConfig kube-dns в кластере может не существовать. Поле spec.version обязательно, когда заданы settings. Проверьте, что DNS отвечает по UDP и TCP 53 с узлов, где запущены поды kube-dns (master или system).

В полностью изолированном кластере coredns без вышестоящих серверов не запускается: укажите любой корректный IP (внутренний DNS или адрес узла), даже если он не отвечает.