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
不是物理機地址