簡體   English   中英

從本地 docker 不安全的 Docker 注冊表中拉取鏡像到 Kubernetes

[英]Pulling image from local docker insecured Docker registry to Kubernetes

無法從 Minikube 內的本地 docker 不安全注冊表存儲庫中提取圖像。

我正在使用安裝在 Windows 7 下的 Oracle VirtualBox 5.1.6 上的 Linux VM (Upstart) 運行 Docker-toolbox v1.12.2。

我已經創建了一個 docker 鏡像並將它推送(標記然后推送)到一個本地不安全的 docker-registry v2 中,該 docker-registry v2 在 192.168.99.100:5000/image/name 上運行。
docker run -d -p 5000:5000 --restart=always --name registry registry:2
在虛擬機內部,在 /var/lib/boot2docker/profile 上,我已將標志添加到 EXTRA_ARGS
--insecure-registry 192.168.99.100:5000

來自localhost:5000/image/name docker pushdocker pull在 Docker(VM)中工作正常。

_catalog 可以從 Postman 訪問: GET http:192.168.99.100:5000/v2/_catalog ,我可以在注冊表中獲取圖像。

我正在使用以下命令啟動我的 Minikube v0.15.0 VM:

minikube start --insecure-registry=192.168.99.100:5000

我在公司代理下,所以我在命令行(CMD)中添加了代理:
set HTTP/HTTPS_PROXY=my.company.proxy:8080set NO_PROXY={minikube ip}
然后 Kubernetes 儀表板開始為我工作。

現在是真正的問題,在運行命令時:
kubectl run image-name --image=192.168.99.100:5000/image/name --port=9999將圖像從我的本地 docker 注冊表中提取到 Kubernetes 中

已創建部署“映像名稱”

但在 Kubernetes > Deployments 中,我收到以下錯誤:

無法拉取映像“192.168.99.109:5000/image/name”:映像拉取 192.168.99.100:5000/image/name:latest 失敗,這可能是因為此請求沒有憑據。 詳細信息:(來自守護進程的錯誤響應:獲取https://192.168.99.100:5000/v1/_ping :隧道或 SSL 禁止)

任何人都可以幫助解決隧道或 SSL 禁止錯誤,這讓我發瘋,我嘗試了很多解決方案來配置 --insecrue-registery 在 docker、Kubernetes 內部或在運行 dokcer-registry 時。

順便說一句,為什么它指的是 v1/_ping? 我正在使用 docker 注冊表 v2。

似乎 minikube 無法看到您的注冊表正在運行的同一網絡。 您可以嘗試運行minikube ssh然后為目錄運行 curl 嗎?

此外,作為替代方案,您可以運行eval(minikube docker-env) ,然后將本地 docker 客戶端設置為使用 minikube 內的 docker 服務器。

因此,例如,如果您構建了一個帶有myimage/foo標記的myimage/foo ,它將構建該鏡像並將其放置在 minikube docker 主機上,因此當您部署該鏡像時,不需要拉取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM