首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes CoreDNS间歇解析名称

Kubernetes CoreDNS间歇解析名称
EN

Stack Overflow用户
提问于 2019-05-13 07:06:32
回答 3查看 4.2K关注 0票数 3

我有一个两个节点Kubernetes EKS集群,它运行着"v1.12.6-eks-d69f1“

代码语言:javascript
复制
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名称的解析工作得很好)

代码语言:javascript
复制
root@examplecontainer:/# curl http://elasticsearch-dev.internaldomain.local:9200/
curl: (6) Could not resolve host: elasticsearch-dev.internaldomain.local

本地在AWS Route53内部托管区域中注册。以上工作间歇进行,如果我发出五个请求,其中两个将正确解决,其余将失败。

这些是上面例子保持器上的/etc/rupv.conf文件的内容:

代码语言:javascript
复制
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

知道为什么会发生这种事吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-23 13:02:09

我通过从一个自定义的"DHCP选项集“切换到AWS提供的默认"DHCP选项集”来解决这个问题。几个月前,我创建了自定义的"DHCP选项集“,并将其分配给正在运行EKS集群的VPC。

我是怎么查到真相的?

在运行"kubectl get events -n kube-system“之后,我意识到以下几点:

代码语言:javascript
复制
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.4

8.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名称。

我希望这能对将来的人有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-05-13 10:04:01

您应该从容器中尝试在dns下面。

卷曲http://elasticsearch-dev.default.svc.cluster.local:9200/

票数 0
EN

Stack Overflow用户

发布于 2019-05-13 13:01:07

请看一下这个“为Amazon集群端点启用DNS解析”的这里

为端点创建的Amazon 53专用托管区域仅与工作节点VPC相关联。

如果是类似的玩具,你的副官。您可以找到解决方案这里

请与大家分享结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56107267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档