国内环境WSL2在http代理下运行minikube
因为国内环境下无法访问k8s.gcr.io,因而需要设置代理来访问。如果没有正确设置好,在运行minikube start
后会显示以下警告:
? This container is having trouble accessing https://k8s.gcr.io
说明这个容器不能正常访问到k8s.gcr.io去拉取镜像
参照https://minikube.sigs.k8s.io/... 正确配置的方法为:
export HTTP_PROXY=http://export HTTPS_PROXY=https://【国内环境WSL2在http代理下运行minikube】export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24,192.168.49/24minikube start
(官方文档漏掉了
192.168.49/24
)问题就在于怎么让minikube连上windows的梯子。
假设我们在windows打开了一个允许来自局域网连接的HTTP代理服务,端口为10809。
那么为WSL2配置代理时,我们首先要知道WSL2下,windows的IP地址,则需要运行
cat /etc/resolv.conf
其中显示的nameserver则为WSL2连接到windows的IP地址,假设值为
172.80.18.1
因此我们可以为WSL2设置梯子:export HTTP_PROXY=http://172.80.18.1:10809
export HTTPS_PROXY=http://172.80.18.1:10809
这样我们就能在WSL2中使用到代理服务访问外网
!但是这样也无法让minikube连接到外网。
因为minikube是运行在docker desktop中的,不能直接使用到WSL2的网络(有误请指正)。而我们在开启WSL2中运行minikube的时候,minikube的系统会使用WSL2的网络环境变量(HTTP_PROXY, HTTPS_PROXY, NO_PROXY)作为minikube的环境变量。因此,正确的填写方式是:
export HTTP_PROXY=http://host.docker.internal:10809
export HTTPS_PROXY=http://host.docker.internal:10809
export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24,192.168.49/24minikube start
其中host.docker.internal在容器中会被容器的DNS服务解析为宿主的IP地址,也就是容器与windows通信的IP地址,类似WSL2与windows通信的IP地址。
这样设置,minikube就能使用到系统代理。
推荐阅读
- 人生感悟记#环境仪器宋庆国成长记#072
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 六步搭建ES6语法环境
- 李白的妈
- iOS,打Framework静态库
- win10环境|win10环境 python3.6安装pycrypto-2.6.1的问题
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- 为Google|为Google Cloud配置深度学习环境(CUDA、cuDNN、Tensorflow2、VScode远程ssh等)
- 读《12条生活规则》,在噪杂混乱的环境里找到生活的目的和意义
- linux环境变量相关操作