??0. 本文適用
- 一切由于網(wǎng)絡(luò)需要代理原因宦言,導(dǎo)致的鏡像pull 時間超時問題扇单。
- 基與mac os,其他系統(tǒng)可以參考奠旺。
??1. 錯誤描述
在弄之前令花,你當(dāng)然需要適用proxy來弄你的終端:
export http_proxy=http://192.168.1.48:8118阻桅;
export https_proxy=http://192.168.1.48:8118;
在各種一頓操作之后,發(fā)現(xiàn)無法看到想要的結(jié)果兼都,看下log如下:
kubectl log hello-node-7f8df9f98d-rrmb2 # log后面是你的pod名
卻出現(xiàn)如下錯誤:
Error from server (BadRequest): container "hello-node" in pod "hello-node-7f8df9f98d-rrmb2" is waiting to start: trying and failing to pull image
他的意思是我孩子嘗試pull鏡像嫂沉。
找了好久,沒找到關(guān)鍵所在扮碧,因為執(zhí)行:
docker images
是可以看到這個鏡像的趟章。但是卻不在本地pull,他出去下載又失敗了慎王,我隨風(fēng)而立蚓土。。赖淤。蜀漆。
??2.問題的解決
一頓思考加??后,我發(fā)現(xiàn):
minikube的邏輯是創(chuàng)建一個vm咱旱,在這個vm里去運(yùn)行k8s需要的各種docker image
所以你需要解決的是在vm中的docker在pull鏡像的時候的代理問題确丢。
starkoverflow上很多人回答的十分不清楚,完全沒有找到問題的根源吐限。
其實這個問題有官方解答:
- 第一步:
Minikube creates a Virtual Machine that includes Kubernetes and a Docker daemon. When Kubernetes attempts to schedule containers using Docker, the Docker daemon may require external network access to pull containers.
If you are behind an HTTP proxy, you may need to supply Docker with the proxy settings. To do this, pass the required environment variables as flags during minikube start.
For example:
$ minikube start --docker-env HTTP_PROXY=http://$YOURPROXY:PORT \
--docker-env HTTPS_PROXY=https://$YOURPROXY:PORT
ps:如果你已經(jīng)執(zhí)行了代理設(shè)置
也就是這一步:
export http_proxy=http://192.168.1.48:8118鲜侥; # ??這個http://192.168.1.48:8118是我的代理配置,你需要弄一個自己的诸典,詳情自己??
export https_proxy=http://192.168.1.48:8118;
那么直接執(zhí)行
minikube start --docker-env HTTP_PROXY=${http_proxy} --docker-env HTTPS_PROXY=${https_proxy}
- 第二步
If your Virtual Machine address is 192.168.99.100, then chances are your proxy settings will prevent kubectl from directly reaching it. To by-pass proxy configuration for this IP address, you should modify your no_proxy settings. You can do so with:
$ export no_proxy=$no_proxy,$(minikube ip)
執(zhí)行以上兩條命令描函,我這里就解決了。
??3.后記
- ??一定要看官方文檔狐粱,英文可以慢慢啃
- 一定要用google舀寓,可以看中文的各個小伙伴的博客分析,不要太迷信starkoverflow肌蜻,上面也有沙子的雕塑互墓。
4.參考
Using Minikube With an HTTP Proxy
mac上安裝minikube及排錯記
隨風(fēng)飄散k8s minikube setup