一个伪linux粉丝的blog

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

k8s Nameserver limits were exceeded

5月 13, 2020 1144点热度 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
最后更新:5月 13, 2020

wanjie

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

点赞
< 上一篇
下一篇 >

文章评论

取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

归档
分类
  • network / 324篇
  • Uncategorized / 116篇
  • unix/linux / 114篇
  • 业界资讯 / 38篇
  • 公司杂事 / 11篇
  • 数码影像 / 12篇
  • 美剧 / 3篇
  • 美图共赏 / 20篇
  • 英语学习 / 3篇
标签聚合
wget 中国电信 Opera Mini brew 网站运营 Nginx docker dreamhost Android jira 网通 d90 dreamhost空间 Google iMac 邮件归档 Google Adwords ldap 刷机 debian 泰国 Linux 虚拟主机 Ubuntu gitlab Google Voice VPS k8s nexus kernel

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

Theme Kratos Made By Seaton Jiang