我在minikube上运行kubernetes,我在代理后面,所以我在/etc/systemd/system/docker.service.d/http-proxy.conf中为docker设置了env变量(HTTP_PROXY和NO_PROXY) . 我能够做码头工作,但是当我运行下面的例子时
kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
kubectl get pod
pod永远不会启动,我收到错误
desc = unable to pull sandbox image \"gcr.io/google_containers/pause-amd64:3.0\"
docker pull gcr.io/google_containers/echoserver:1.4
工作正常
3 回答
我自己能够解决这个问题 . 我的主机上有Docker,Minikube上有Docker . Minukube中的Docker遇到了我不得不进入minikube VM的问题并按照这篇文章发表
Cannot download Docker images behind a proxy这一切都有效,
应该有一个更好的方法来做这个,在启动minikube我已经通过如下所示的docker env,这不起作用
我在Minikube VM中设置了相同的env变量,以使其工作
我遇到了同样的问题,并在做了几次错误的转弯之后分享了我学到的东西 . 这是使用minikube v0.19.0 . 如果您使用的是旧版本,则可能需要更新 .
请记住,我们需要完成两件事:
确保在桌面上连接到minikube时,kubctl不会通过代理 .
确保minikube中的docker守护程序在需要连接到映像存储库时确实通过了代理 .
首先,确保您的代理设置在您的环境中正确 . 这是我的.bashrc中的一个例子:
有几点需要注意:
我设置了大小写 . 有时这很重要 .
192.168.99.100来自
minikube ip
. 您可以在群集启动后添加它 .好的,所以应该照顾kubectl正常工作 . 现在我们有下一个问题,即确保minikube中的Docker守护进程配置了您的代理设置 . 你这样做,正如PMat所提到的那样:
要验证这些设置是否已执行,请执行以下操作:
您应该看到列出的代理环境变量 .
为什么
minikube delete
?因为如果没有它,如果您之前创建了一个集群(比如没有代理信息),则启动将不会更新Docker环境 . 也许这就是为什么PMat没有成功通过--docker-env开始(或者可能是旧版的minikube) .看起来你需要将minikube ip添加到no_proxy:
看到这个主题:kubectl behind a proxy