Kubernetes 之 Nameserver limits were exceeded
1、问题描述
最近查看kubernetes 的events,发现了有两个节点经常出现下面的信息:
DNSConfigForming Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 192.96.0.10 10.2.5.1 10.2.5.2
这个是kubelet打出来的,字面意思很好理解,就是nameserver 超出限制,超出的将被忽略。那限制是多少呢?so带着这个疑问就去github kubernetes源码一探究竟。
首先确定知道这个是kubelet里面的events,找到dns的相关源码:kubernetes/pkg/kubelet/network/dns/dns.go
func (c *Configurer) formDNSNameserversFitsLimits(nameservers []string, pod *v1.Pod) []string {
if len(nameservers) > validation.MaxDNSNameservers {
nameservers = nameservers[:validation.MaxDNSNameservers]
log := fmt.Sprintf("Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: %s", strings.Join(nameservers, " "))
c.recorder.Event(pod, v1.EventTypeWarning, "DNSConfigForming", log)
klog.Error(log)
}
return nameservers
}
找到上面的函数,有一个validation.MaxDNSNameservers,所以kubelet读取resolv.conf里面的nameserver是有数量限制的,最大值就是validation.MaxDNSNameservers,我们现在去找validation的源码。在上面的import里面
找到k8s.io/kubernetes/pkg/apis/core/validation,找到validation这个package的源码:
const (
// Limits on various DNS parameters. These are derived from
// restrictions in Linux libc name resolution handling.
// Max number of DNS name servers.
MaxDNSNameservers =
// Max number of domains in search path.
MaxDNSSearchPaths =
// Max number of characters in search path.
MaxDNSSearchListChars =
)
原来默认的支持最大nameserver是3个。然后去两台抛出DNSConfigForming的服务器上面检查/etc/resolv.conf里面的nameserver发现果然超过了三个。
二、解决问题
当然一般被忽略掉的那个nameserver不影响服务使用的话,可以不作为紧急处理。
可以在kubelet设置一个kubermetes专用的resolv.conf文件,保证kubernetes使用到的nameserver不超过三个,这样就可以解决。
在/var/lib/kubelet路径下,修改config.yaml
resolvConf: /etc/resolv.conf
重启kubelet生效。
Kubernetes 之 Nameserver limits were exceeded的更多相关文章
- 把Spring Cloud Data Flow部署在Kubernetes上,再跑个任务试试
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring Cloud Data Flow在本地跑得好好的,为什么要部署在Kubernetes上呢?主要是因为Kubern ...
- ModSecurity web application firewall (WAF) Research
catalog . 引言 . OWASP ModSecurity Core Rule Set (CRS) Project . Installation mod_security for Apache ...
- Cisco IOS Debug Command Reference Command E through H
debug eap through debug he-module subslot periodic debug eap : to display information about Extensib ...
- 在 Docker 里跑 Java,你必须知道的那些事儿!(转)
原文 https://www.jianshu.com/p/0897d0581872 背景:众所周知,当我们执行没有任何调优参数(如“java-jar mypplication-fat.jar”)的 J ...
- k8s外部访问内部的service
如果不指定Service的spec.type的值,创建的Service的类型默认为ClusterIP类型.这种类型的Service只会得到虚拟的IP和端口,只能在Kubernetes集群内部被访问. ...
- (转)在Docker中运行Java:为了防止失败,你需要知道这些
转自:https://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=2649693848&idx=1&sn=4e9ef7e2a9d ...
- SNMP OID Reference - NetScaler 10
SNMP OID Reference - NetScaler 10 https://docs.citrix.com/content/dam/docs/en-us/netscaler/10/downlo ...
- Video for Linux Two API Specification Revision 2.6.32【转】
转自:https://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html Video for ...
- Video for Linux Two API Specification revision0.24【转】
转自:http://blog.csdn.net/jmq_0000/article/details/7536805#t136 Video for Linux Two API Specification ...
随机推荐
- SonarLint各种提示的意思
1.Refactor this method to reduce its Cognitive Complexity from 29 to the 15 allowed. 2.Method has 15 ...
- DbgUiConnectToDbg(ntdll.dll)函数逆向
暂时未解决问题: 1. [fs+0F24h]中存储着什么东西. 答案:其存放着被调试程序的DbgObject句柄._NtCreateDebugObject(ntoskrnl.exe)函数逆向分析 该 ...
- C# Task ContinueWith
static void Main(string[] args) { Task firstTask = Task.Run(() => { PrintPlus(); }); Task secondT ...
- 细数C++中的for循环
1.for(;;)这个是最基础最简单的for循环,从刚开始学习C语言的时候就知道的.for(int i = 0; i < 10; ++i){ }2.foreach完整的是for each(obj ...
- Dynamics CRM定制子网格添加按钮实例之二:调试代码、打开Web资源及获取选择的记录
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复222或者20160501可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Cygwin添加右键菜单
修改注册表 统一的方式,添加一个右键命令 找到HKEY_CLASSES_ROOT\Directory\Background\shell 右键,新建项.名字随便起 再次右键,新建项.命名command ...
- 工具类Base64Util
在和服务器交互的过程中,有时候我们需要把图片编码成base64字符串传输,记录一下工具类 import android.graphics.Bitmap; import android.graphics ...
- NSURLSession的知识小记
1.NSURLSession的使用流程 使用NSRULSession对象创建Task, 然后执行Task 2.获取NSURLSession ()获得共享的Session + (NSURLSession ...
- [20190517]rman tape compressed.txt
[20190517]rman tape compressed.txt --//前一段测试rman选择压缩备份时,如果备份单个数据文件小于64M-3*8K时,先建立大小64M文件,最后会回收到自己的备份 ...
- 爬虫---爬取b站小视频
前面通过python爬虫爬取过图片,文字,今天我们一起爬取下b站的小视频,其实呢,测试过程中需要用到视频文件,找了几个网站下载,都需要会员什么的,直接写一篇爬虫爬取视频~~~ 分析b站小视频 1.进入 ...