我一直在尝试在单个节点上设置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
我找不到根本原因,我应该看什么?
答案 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个DNSnameserver
记录。 Kubernetes需要消耗1search
条记录和3nameserver
条记录。这意味着,如果本地安装已经使用了3search
或使用了3nameserver
个以上,则其中的某些设置将丢失。作为部分解决方法,该节点可以运行search
,这将提供更多dnsmasq
条目,但不会提供更多nameserver
条目。您还可以使用kubelet的search
标志。如果您使用Alpine 3.3或更早版本作为基本映像,则由于Alpine的已知问题,DNS可能无法正常工作。检查here了解更多信息。
您可以在Kubernetes代码中进行更改,但是我不确定该功能。因为已将其设置为该值。
可以找到代码here
--resolv-conf