minikube配置代理:解决方案以及解决思路
minikube配置代理:解决方案以及解决思路
minikube的原理大致是是内部实现了一个虚拟机,并且将这个虚拟机作为了 k8s 集群的第一个node。
当我们通过kubectl run [pod-name] --image=[image-name]
向这个node添加pod时,虚拟机会使用docker抓取image。抓取的过程就需要通过代理保证网络通信能稳定运行。
因此思路就是配置中的虚拟机的docker
1.进入虚拟机
$ kubectl ssh
2.配置http-proxy.conf
使用vi打开http-proxy.conf:
$ sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
在其中填入:
[Service]
Environment="HTTP_PROXY=http://192.168.49.1:7890"
Environment="HTTPS_PROXY=http://192.168.49.1:7890"
其中7890
是主机http代理所使用的代理端口,192.168.49.1
是主机ip,虚拟机通过这个ip与外部通信。在官方档案中搜索host 相关内容可以发现在虚拟机内可以通过$ ping host.minikube.internal
来获得主机ip。
3.重启docker服务
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
之后可以docker pull nginx测试能否正确运行。
4.另
网上也有人使用
minikube start --docker-env http_proxy=http://192.168.49.1:8123 \
--docker-env https_proxy=http://192.168.49.1:8123 \
--docker-env no_proxy=localhost,127.0.0.1,10.96.0.0/12,192.168.0.0/16
来配置代理,但在我的环境下没法复现,如果有人尝试可行的话可以评论cue我一下。
另外minikube ip
不是物理机地址