1

我无法从 pod 连接到互联网。我的 kubernetes 集群在代理后面。
我已经设置了/env/environmentand /etc/systemd/system/docker.service.d/http_proxy.conf,并确认环境变量(http_proxy, https_proxy, HTTP_PROXY, HTTPS_PROXY, no_proxy, NO_PROXY)是正确的。但是在吊舱中,当我尝试时echo $http_proxy,答案是空的。我也试过curl -I https://rubygems.org,但它返回了curl: (6) Could not resolve host: rubygems.org
所以我认为 pod 没有正确接收环境值,或者我忘记做我应该做的事情。我该怎么做才能解决?

我试过了export http_proxy=http://xx.xx.xxx.xxx:xxxx; export https_proxy=...
之后,我再次尝试curl -I https://rubygems.org,我可以收到 200 的标题。

4

1 回答 1

1

我看到的是你有错误的 proxy.conf名字。根据官方文件,名称应该是/etc/systemd/system/docker.service.d/http-proxy.conf而不是/etc/systemd/system/docker.service.d/http_proxy.conf

接下来,您添加代理,重新加载守护程序并重新启动 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

或者,根据@mk_ska 的回答,您可以

将 http_proxy 设置添加到您的 Docker 机器,以便通过目标代理服务器转发来自嵌套 Pod 容器的数据包。

对于基于 Ubuntu 的操作系统:

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

对于基于 Centos 的操作系统:

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

之后重启 Docker 服务。

以上将为 docker 引擎将使用的所有容器设置代理

于 2019-09-03T12:23:00.860 回答