一个伪linux粉丝的blog

  1. 首页
  2. unix/linux
  3. 正文

k8s Nameserver limits were exceeded

13 5 月, 2020 2243点热度 1人点赞 0条评论

1. 背景

发现一个k8s报错Nameserver limits were exceeded,虽然可以望文生义,很快解决问题,但是要复现问题并搞懂原理还是花费了一点时间。

Warn DNSConfigForming   Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 192.168.1.29 192.168.1.28 1.1.1.1

 

2. 过程

2.1. 复现过程

2.1.1. 修改pod解析方式

根据k8s文档介绍: “Default”: Pod从运行所在的节点继承名称解析配置。

将 DNS策略 网络设置为,Default 模式

2.1.2. 修改节点ns

修改节点 /etc/resolv.conf 里面的nameserver,手动随意增加几个,即超过3个。

resolv.conf-test
cat /etc/resolv.conf
nameserver 192.168.1.29
nameserver 192.168.1.28
nameserver 1.1.1.1
nameserver 192.168.1.27
nameserver 192.168.1.26

重启2048容器,很快就能复现如上图的 Nameserver limits were exceeded 报错。

2.2. 解决过程

既然前面复现了报错,解决方法也就是反向操作,以下方法2选1,都可以解决ns超出的问题。

2.2.1. 解决方法-修改dns策略

  • 手动方式:直接修改yml文件 ,字段为 dnsPolicy: ClusterFirstWithHostNet 或 ClusterFirst
resolv.conf-test
  containers:
    - name: 2048
...
  dnsPolicy: ClusterFirstWithHostNet
  hostNetwork: true

2.2.2. 解决方法-删除节点多余ns

直接修改节点所在的 nameserver 文件  /etc/resolv.conf ,删除多余的nameserver地址,建议保留1-2个即可。

2.3. 理论依据

  • 报错代码出处

https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/network/dns/dns.go#L133

log := fmt.Sprintf("Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: %s", strings.Join(nameservers, " "))

k8s源代码dns.go部分,当前第133行,有提示“Nameserver...."

  • ns限制出处

https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/core/validation/validation.go#L2836

MaxDNSNameservers = 3 

1
k8s源代码当前第2836行,进行了限制,最大ns数为3.

3. 参考资料

  • Pod 与 Service 的 DNS
  • Kubernetes 之 Nameserver limits were exceeded
  • https://github.com/kubernetes/kubernetes/

相关文章:

  1. ss-panel+shadowsocks-note
  2. BaiduPCS
  3. kloxo lighttpd failed
  4. "too many open files" from kubectl logs
标签: k8s
最后更新:13 5 月, 2020

wanjie

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

This site uses Akismet to reduce spam. Learn how your comment data is processed.

归档
分类
  • network / 332篇
  • Uncategorized / 116篇
  • unix/linux / 121篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 21篇
  • 英语学习 / 3篇
标签聚合
d90 ldap dreamhost空间 浏览器 squid jira Google Voice 虚拟主机 k8s VPS ssh nexus docker Nginx 网站运营 泰国 gitlab 天翼live Google google-chrome kubectl 邮件归档 dreamhost Ubuntu openssl deepseek wget postgres kernel debian

COPYRIGHT © 2008-2025 wanjie.info. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang