[英]kubernetes, pods can not communicate via domain name
最近,我们的域名由于某种原因而关闭,但这仅仅是kubernetes集群根本没有更改的域名。
现在,这些Pod无法通过域和子域进行通信,在ip上它们可以像curl ip-to-any-pod
一样工作curl ip-to-any-pod
都可以,但是curl sub-domain.domain.com
无法工作。 它说curl: (6) Could not resolve host: sub-domain.domain.com
疯狂的是,它有时有效,有时却无效。
我已经遍历了互联网上的每个相关问题,但找不到任何具体的东西,日志,事件等也没有告诉我任何事情。
我重新启动了Pod和Calico Network Pod,但仍然没有任何改变。
重新启动我的一个吊舱时,我收到此消息一次
Warning FailedCreatePodSandBox 45s kubelet, ip-xxx-xx-xx-xx.ap-south-1.compute.internal Failed create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "db2249c98d0b8b4bbef79ac5cd7e5c36c957f3929637093268670e7002c2467f" network for pod "web-6576f9fcdc-kt9xw": NetworkPlugin cni failed to set up pod "web-6576f9fcdc-kt9xw_hc" network: dial tcp: lookup etcd-a.internal.cluster.xxxx.xx on xxx.xx.x.x:53: no such host, failed to clean up sandbox container "db2249c98d0b8b4bbef79ac5cd7e5c36c957f3929637093268670e7002c2467f" network for pod "web-6576f9fcdc-kt9xw": NetworkPlugin cni failed to teardown pod "web-6576f9fcdc-kt9xw_hc" network: dial tcp: lookup etcd-a.internal.cluster.xx.xx on xxx.xx.x.x:53: no such host]
通常,在设置域时,它要花一些时间传播,并且传播不均匀。 常见的情况是,在创建记录后,您将根本无法解析它,然后过一会儿它会变得片状,最终会稳定下来。 有时,DNS需要花费数十个小时来传播。
您可以从Internet搜索中找到许多在线文章,这些文章解释了DNS传播为什么要花费这么多时间。 还有一些简洁的工具,例如DNS Checker ,可以让您了解DNS记录在全球范围内的传播情况。
正如您在评论中确认的那样,您的问题在第二天就消失了。
我认为您的问题非常复杂,无法简单回答。
请参阅:
kubernetes区域中DNS记录的默认TTL已从5s更改为30s,以与基于dnsmasq的旧kube-dns保持一致。 可以使用命令
kubectl edit -n kube-system configmap/coredns
自定义TTL将kubeadm cluster-dns 的CoreDNS版本恢复为1.3.1 。
首先,请开始调试群集,并验证您的问题是否与域设置有关,或者是群集内部问题。 调试DNS解析
请在您的Pod中的/etc/resolv.conf中验证本地dns配置。
请验证DNS,Coredns PODS中的错误。
要获取有关dns解析的更多信息,您可以使用其他工具,例如:nslkookup,dig,traceroute
example:
nslookup -type=a [domain.com]
using against specific domain server
nslookup -type=a [domain.com] [ns server]
使用这些工具,您还可以获得有关非权威性或权威性答案的信息。
权威名称服务器是具有域区域文件的原始源文件的名称服务器。
由于这在生产环境中非常重要,请尝试重现此问题,以确保将来的服务保持健康。
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.