超出了K8s coredns和法兰绒名称服务器的限制

时间:2020-01-24 05:32:16

标签: kubernetes flannel coredns

我一直在尝试在单个节点上设置k8,一切都安装正确。但是当我检查kube系统吊舱的状态时,

CNI->绒布窗格已损坏,原因->超出了名称服务器的限制,某些名称服务器已被省略,所应用的名称服务器行为:xxxx xxxx xxxx

CoreDNS 窗格状态为 ContainerCreating

在“我的办公室”中,当前服务器已配置为具有静态IP,并且当我选中 /etc/resolv.conf

这是输出

# Generated by NetworkManager
search ORGDOMAIN.BIZ
nameserver 192.168.1.12
nameserver 192.168.2.137
nameserver 192.168.2.136
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 192.168.1.10
nameserver 192.168.1.11

我找不到根本原因,我应该看什么?

1 个答案:

答案 0 :(得分:2)

简而言之,shouldComponentUpdate中的条目太多。

这是known issue

某些Linux发行版(例如Ubuntu),默认情况下使用本地DNS解析器(systemd-resolved)。 Systemd解决的问题将移动/etc/resolv.conf并将其替换为存根文件,当在上游服务器中解析名称时,存根文件可能导致致命的转发循环。可以通过使用kubelet的/etc/resolv.conf标志来指向正确的--resolv-conf来手动解决此问题(对于resolv.conf,这是systemd-resolved)。 kubeadm(> = 1.11)自动检测到/run/systemd/resolve/resolv.conf,并相应地调整kubelet标志。

Linux的libc不可能卡住(see this bug from 2005),限制为仅3个DNS systemd-resolved记录和6个DNS nameserver记录。 Kubernetes需要消耗1 search条记录和3 nameserver条记录。这意味着,如果本地安装已经使用了3 search或使用了3 nameserver个以上,则其中的某些设置将丢失。作为部分解决方法,该节点可以运行search,这将提供更多dnsmasq条目,但不会提供更多nameserver条目。您还可以使用kubelet的search标志。

如果您使用Alpine 3.3或更早版本作为基本映像,则由于Alpine的已知问题,DNS可能无法正常工作。检查here了解更多信息。

您可以在Kubernetes代码中进行更改,但是我不确定该功能。因为已将其设置为该值。

可以找到代码here

--resolv-conf