此设置在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
容器是否跳过了加载主机名+服务信息的步骤?
答案 0 :(得分:0)
我为整个工作节点安全组中的所有流量创建了一个入口规则,它开始起作用。看起来与具有kube-dns pod的主机不在同一个主机上的容器存在问题。也许有更好的解决方案,但是到目前为止,这已经解决了我的问题。
编辑:先前的答案无法解决我的问题。问题最终是三个节点中有两个在/etc/systemd/system/kubelet.service中具有错误的群集ip。解决所有Pod都能够解析DNS之后。由于吊舱是在单个工作节点上同时旋转的,因此之前已临时修复。