我有一个两个节点Kubernetes EKS集群,它运行着"v1.12.6-eks-d69f1“
Amazon VPC CNI Plugin for Kubernetes version: amazon-k8s-cni:v1.4.1
CoreDNS version: v1.1.3
KubeProxy: v1.12.6集群上运行着两个CoreDNS吊舱。
我的问题是,我的荚是间歇性地解析内部DNS名称。(外部DNS名称的解析工作得很好)
root@examplecontainer:/# curl http://elasticsearch-dev.internaldomain.local:9200/
curl: (6) Could not resolve host: elasticsearch-dev.internaldomain.local本地在AWS Route53内部托管区域中注册。以上工作间歇进行,如果我发出五个请求,其中两个将正确解决,其余将失败。
这些是上面例子保持器上的/etc/rupv.conf文件的内容:
root@examplecontainer:/# cat /etc/resolv.conf
nameserver 172.20.0.10
search default.svc.cluster.local svc.cluster.local cluster.local eu-central-1.compute.internal
options ndots:5知道为什么会发生这种事吗?
发布于 2019-05-23 13:02:09
我通过从一个自定义的"DHCP选项集“切换到AWS提供的默认"DHCP选项集”来解决这个问题。几个月前,我创建了自定义的"DHCP选项集“,并将其分配给正在运行EKS集群的VPC。
我是怎么查到真相的?
在运行"kubectl get events -n kube-system“之后,我意识到以下几点:
Warning DNSConfigForming 17s (x15 over 14m) kubelet, ip-10-4-9-155.us-west-1.compute.internal Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 10.4.8.2 8.8.8.8 8.8.4.48.8.8.8和8.8.4.4是我创建的麻烦的"DHCP选项集“注入的。我认为,我的服务间歇性地解析内部DNS名称的原因是,CoreDNS服务以循环方式将DNS请求内部转发到10.4.8.2、8.8.4.4、8.8.8.8。由于最后2个DNS服务器不知道我的Route53内部托管区域DNS记录,所以解析间歇性失败。
注10.4.8.2是默认的AWS名称服务器。
一旦切换到AWS提供的默认"DHCP选项集“,EKS服务就可以始终如一地解析我的内部DNS名称。
我希望这能对将来的人有所帮助。
发布于 2019-05-13 10:04:01
您应该从容器中尝试在dns下面。
卷曲http://elasticsearch-dev.default.svc.cluster.local:9200/
https://stackoverflow.com/questions/56107267
复制相似问题