最近,我们的域名由于某种原因而关闭,但这仅仅是kubernetes集群根本没有更改的域名。
现在,这些Pod无法通过域和子域进行通信,在ip上,它们的工作就像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]
答案 0 :(得分:0)
通常,在设置域时,它会花费一些时间传播,并且传播不均匀。常见的情况是,在创建记录后,您将根本无法解析它,然后过一会儿它会变得片状,最终会稳定下来。有时,DNS需要花费数十个小时来传播。
您可以从Internet搜索中找到许多在线文章,这些文章解释了DNS传播为什么要花费这么多时间。还有DNS Checker之类的简洁工具,可以使您了解DNS记录在全球的传播情况。
正如您在评论中确认的那样,第二天您的问题就消失了。
答案 1 :(得分:0)
我认为您的问题非常复杂,无法简单回答。
请参考:
kubernetes区域中DNS记录的默认TTL已从5s更改为30s,以与基于dnsmasq的旧kube-dns保持一致。可以使用命令
kubectl edit -n kube-system configmap/coredns
自定义TTL Reverted the CoreDNS version to 1.3.1用于kubeadm cluster-dns
首先,请开始调试群集,并验证您的问题是否与域设置有关,或者是群集内部问题。 Debugging DNS Resolution
请在您的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]
使用这些工具,您还可以获得有关非权威性或权威性答案的信息。
权威名称服务器是具有域区域文件的原始源文件的名称服务器。
因为在生产环境中非常重要,请尝试重新创建问题,以确保将来的服务保持健康。
希望获得帮助。