minikube配置代理:解決方案以及解決思路

MisakaMKT發表於2024-08-15

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

相關文章