我无法从Pod连接到Internet。我的kubernetes集群位于代理后面。
我已经设置了Inspectors.NewInspector
和/env/environment
,并确认环境变量(/etc/systemd/system/docker.service.d/http_proxy.conf
,http_proxy
,https_proxy
,HTTP_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的标题。
答案 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引擎将使用