kubernetes:Pod无法连接到互联网

时间:2019-09-03 01:39:25

标签: kubernetes proxy calico

我无法从Pod连接到Internet。我的kubernetes集群位于代理后面。
我已经设置了Inspectors.NewInspector/env/environment,并确认环境变量(/etc/systemd/system/docker.service.d/http_proxy.confhttp_proxyhttps_proxyHTTP_PROXY,{{1} },HTTPS_PROXY)是正确的。 但是在pod中,当我尝试no_proxy时,答案为空。我也尝试过NO_PROXY,但返回了echo $http_proxy
因此,我认为pod无法正确接收环境值,或者有些事情我忘了做我应该做的事情。我该怎么解决呢?

我试图curl -I https://rubygems.org
之后,我再次尝试curl: (6) Could not resolve host: rubygems.org,可以收到200的标题。

1 个答案:

答案 0 :(得分:0)

我看到的是您的proxy.conf名称错误。 根据{{​​3}},名称应为/etc/systemd/system/docker.service.d/http-proxy.conf,而不是/etc/systemd/system/docker.service.d/http_proxy.conf

接下来,如注释official documention中所述,添加代理,重新加载守护程序并重新启动docker

/etc/systemd/system/docker.service.d/http_proxy.conf

内容:

    [Service]
    Environment="HTTP_PROXY=http://x.x.x:xxxx"
    Environment="HTTPS_PROXY=http://x.x.x.x:xxxx"

# systemctl daemon-reload
# systemctl restart docker

或者,根据another answer,您可以

  

将http_proxy设置添加到您的Docker机器中以进行转发   嵌套Pod容器通过目标代理服务器发送的数据包。

     

对于基于Ubuntu的操作系统:

     

将导出http_proxy ='http://:'记录添加到文件中   / etc / default / docker

     

对于基于Centos的操作系统:

     

将导出http_proxy ='http://:'记录添加到文件中   / etc / sysconfig / docker

     

然后重新启动Docker服务。

上面将为所有容器设置代理,Docker引擎将使用