Как заставить Kubernetes CoreDNS перезагрузить свою карту конфигурации после изменения?

Я запускаю Kubernetes 1.11 и пытаюсь настроить кластер Kubernetes, чтобы сначала проверить локальный сервер имен. Я прочитал инструкции на сайте Kubernetes по настройке CoreDNS и использовал панель инструментов для редактирования системной ConfigMap для CoreDNS. Результирующее значение corefile:

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

Вы можете увидеть локальный адрес как первый вышестоящий сервер имен. Моя проблема в том, что это никак не повлияло. У меня есть контейнер, работающий с ping & nslookup, и ни один из них не разрешает имена с локального сервера имен.

На данный момент я решил проблему, указав конфигурацию сервера имен в нескольких спецификациях модулей, которые в ней нуждаются, но мне не нравится обходной путь.

Как заставить CoreDNS обновляться на основе измененной ConfigMap? Я вижу, что это развертывание в пространстве имен kube-system, но я не нашел никаких документов о том, как заставить его перезагрузить или иным образом отреагировать на измененную конфигурацию.


person E. Wittle    schedule 27.11.2018    source источник
comment
Вы можете просто удалить coredns pod. затем он будет создан автоматически с новой конфигурацией.   -  person Emruz Hossain    schedule 27.11.2018


Ответы (2)


Вы можете отредактировать его в командной строке:

kubectl edit cm coredns -n kube-system

Сохраните его и выйдите, что должно перезагрузить его.

Если он не перезагрузится, как посоветовал Эмруз Хоссейн, удалите coredns:

kubectl get pods -n kube-system -oname |grep coredns |xargs kubectl delete -n kube-system

person Crou    schedule 27.11.2018
comment
У меня такая же проблема, на EKS. Удаление модулей не помогло, даже не завершение работы всех узлов со всеми модулями. Я также попытался применить kube-dns ConfigMap с upstreamNameservers вместо этого, как предлагается здесь: kubernetes.io/docs/tasks/administer-cluster/ ничего из этого не помогло. - person Johnathan Kanarek; 02.06.2019

Один из способов применить изменения Configmap - повторно развернуть поды CoreDNS:

kubectl rollout restart -n kube-system deployment/coredns
person Viliam Pucik    schedule 09.07.2020