Kubernetes Ubuntu 14.04客户端无法解析k8s服务名称

Kubernetes Ubuntu 14.04客户端无法解析k8s服务名称,kubernetes,coredns,Kubernetes,Coredns,我有一个K8S 1.14群集设置,CoreDNS 1.5.0作为默认DNS服务器。我的ubuntu 14.04客户端在收到一个TTL小于SOA字段中最小TTL值的响应时,未能解析服务名称(带有IPv6结果的响应,未解析IPv6地址) 我尝试在Ubuntu 18.04中使用相同的客户端代码,每次都可以解析服务名称。我使用pythonsocket.getaddrinfo来解析服务名,使用socket.gethostbyname可以解决这个问题,因为它只查询A记录 这是我用来测试的代码 导入套接字 导

我有一个K8S 1.14群集设置,CoreDNS 1.5.0作为默认DNS服务器。我的ubuntu 14.04客户端在收到一个TTL小于SOA字段中最小TTL值的响应时,未能解析服务名称(带有IPv6结果的响应,未解析IPv6地址)

我尝试在Ubuntu 18.04中使用相同的客户端代码,每次都可以解析服务名称。我使用pythonsocket.getaddrinfo来解析服务名,使用socket.gethostbyname可以解决这个问题,因为它只查询A记录

这是我用来测试的代码

导入套接字
导入时间
尽管如此:
尝试:
时间。睡眠(2)
打印套接字.getaddrinfo(“kubernetes”,“443”)
例外情况除外,如e:
打印e
运行此代码的结果如下所示:

[(2,1,6,,('10.233.0.1',443)),(2,2,17,,('10.233.0.1',443)),(2,3,0,,('10.233.0.1',443))]

[Errno-5]没有与主机名关联的地址

[Errno-5]没有与主机名关联的地址

[(2,1,6,,('10.233.0.1',443)),(2,2,17,,('10.233.0.1',443)),(2,3,0,,('10.233.0.1',443))]

[Errno-5]没有与主机名关联的地址

[Errno-5]没有与主机名关联的地址


当我将默认ttl更新为30秒时,我得到了更多的失败,直到我得到了ttl 30的响应。这个问题似乎与dns缓存有关

在ubuntu 14:04中启用dns缓存之前:

[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]
[Errno -5] No address associated with hostname
[Errno -5] No address associated with hostname
[Errno -5] No address associated with hostname
dns缓存安装后,例如:

您可以在/etc/nscd.conf中验证dns缓存

如果我是正确的-DNS没有缓存在Ubuntu<17.04中

此外,根据ubuntu 14.04.6的官方发布时间表:标准支持将于2019年4月结束
希望有此帮助。

请将您的coredns升级至最新版本,此问题已在v1.5.1中修复,以下是

apt-get install nscd
service nscd start

[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]
[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]
[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]
[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]
[(2, 1, 6, '', ('10.96.0.1', 443)), (2, 2, 17, '', ('10.96.0.1', 443)), (2, 3, 0, '', ('10.96.0.1', 443))]