无法从具有https / 443

时间:2018-12-25 20:07:44

标签: docker curl networking kubernetes

我无法使用https卷曲/获取任何URL。他们都给连接被拒绝的错误。到目前为止,这是我观察到的:

  1. 当我从任何Pod中使用https卷曲任何URL时,域将解析为与预期IP地址不同的IP地址。我通过dig domainnamecurl使用相同的域名进行了验证。两种IP不同

  2. 出于调试目的,我从kubelet docker容器中尝试了相同的方案,并且可以正常工作。但是,如果我在另一个应用程序容器中尝试过相同的操作,它将失败。

有什么主意吗?我敢肯定,网络存在一些问题。还有其他调试步骤吗?

该集群在裸机上设置了RKE,并使用运河进行联网。

我要卷曲的网站是updates.jenkins.io,这是nslookup输出

bash-4.4# nslookup updates.jenkins.io
Server:     10.43.0.10
Address:    10.43.0.10#53

Non-authoritative answer:
updates.jenkins.io.domain.name  canonical name = io.domain.name.
Name:   io.domain.name
Address: 185.82.212.199

节点的nslookup给出

root@n4:/home# nslookup updates.jenkins.io
Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
updates.jenkins.io  canonical name = mirrors.jenkins.io.
Name:   mirrors.jenkins.io
Address: 52.202.51.185

据我所知,它正在尝试连接到io.domain.name而不是update.jenkins.io。

进一步检查,所有以.io结尾的域均引起此问题。这是另一个:

bash-4.4# nslookup test.io
Server:     10.43.0.10
Address:    10.43.0.10#53

Non-authoritative answer:
test.io.domain.name canonical name = io.domain.name.
Name:   io.domain.name
Address: 185.82.212.199

1 个答案:

答案 0 :(得分:2)

好吧,/etc/resolv.conf出了点问题。它缺少正确的名称服务器条目。解决该问题后,重新启动系统组件,一切正常。