更改后,如何强制Kubernetes CoreDNS重新加载其配置映射?

E. *_*tle 4 kubernetes coredns

我正在运行Kubernetes 1.11,并尝试配置Kubernetes集群以首先检查本地名称服务器。我阅读了Kubernetes网站上有关自定义CoreDNS的说明,并使用仪表板为CoreDNS编辑了系统ConfigMap。得到的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
}
Run Code Online (Sandbox Code Playgroud)

您可以将本地地址视为第一个上游名称服务器。我的问题是,这似乎没有产生任何影响。我有一个运行ping&nslookup的容器,它们都无法解析本地名称服务器中的名称。

我暂时通过在一些需要的Pod规范中指定名称服务器配置来解决此问题,但我不喜欢这种解决方法。

如何强制CoreDNS根据更改后的ConfigMap更新?我可以看到它是kube-system名称空间中的Deployment,但是我还没有找到有关如何重新加载它或以其他方式响应已更改的配置的文档。

Vil*_*cik 18

应用 Configmap 更改的一种方法是重新部署 CoreDNS pod:

kubectl rollout restart -n kube-system deployment/coredns
Run Code Online (Sandbox Code Playgroud)


Cro*_*rou 6

您可以在命令行中对其进行编辑:

kubectl edit cm coredns -n kube-system

保存并退出,应重新加载它。

如果不会重新加载,请按照Emruz Hossain的建议删除coredns:

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