kubernetes DNS查找失败

时间:2018-08-31 17:04:04

标签: kubernetes amazon-eks

此设置在Amazon EKS集群上运行。

我收到一个错误,其中Pod上的主机名不能解析为群集ip。

$ curl -vvv myservice:10000
* Rebuilt URL to: myservice:10000/
* Hostname was NOT found in DNS cache

env var具有正确的服务名称,ip和端口。

$ env | grep MYSERVICE
MYSERVICE_PORT_10000_TCP_PORT=10000
MYSERVICE_PORT=tcp://172.xx.xx.36:10000
MYSERVICE_PORT_10000_TCP=tcp://172.xx.xx.36:10000
MYSERVICE_PORT_10000_TCP_PROTO=tcp
MYSERVICE_SERVICE_PORT=10000
MYSERVICE_PORT_10000_TCP_ADDR=172.xx.xx.36
MYSERVICE_SERVICE_HOST=172.xx.xx.36
MYSERVICE_SERVICE_PORT_MYSERVICE=10000

我可以卷曲群集的ip /端口并获得所需的响应。

/etc/resolv.conf看起来像

$ cat /etc/resolv.conf
nameserver 172.20.0.10
search default.svc.cluster.local svc.cluster.local cluster.local ec2.internal
options ndots:5

容器是否跳过了加载主机名+服务信息的步骤?

1 个答案:

答案 0 :(得分:0)

我为整个工作节点安全组中的所有流量创建了一个入口规则,它开始起作用。看起来与具有kube-dns pod的主机不在同一个主机上的容器存在问题。也许有更好的解决方案,但是到目前为止,这已经解决了我的问题。

编辑:先前的答案无法解决我的问题。问题最终是三个节点中有两个在/etc/systemd/system/kubelet.service中具有错误的群集ip。解决所有Pod都能够解析DNS之后。由于吊舱是在单个工作节点上同时旋转的,因此之前已临时修复。