簡體   English   中英

無法從 minikube 中提取圖像 docker

[英]Cannot pull image from minikube docker

當我嘗試在集群中運行一個容器時,我收到一條消息“已deployment test created ”,但是當我查看儀表板時,我可以看到它出現錯誤 state( Failed to pull image... ,它無法由於授權問題,從本地 minikube docker 環境中拉取圖像

我的步驟是:

  1. 使用 hyperv 啟動 minikube 並將--insecure-registry開關設置為 10.0.0.0/8,也嘗試了 0.0.0.0/0 - Kube.netes 版本 1.9.0 也嘗試了 1.8.0
  2. 通過minikube docker-env | Invoke-Expressiondocker env設置為 minikube docker | minikube docker-env | Invoke-Expression
  3. 構建 docker 圖像 - 圖像構建並存在於 minikube 本地 docker
  4. kubectl run test --image test-service --port 1101

這是結果:

部署失敗

我錯過了什么?

正如評論中所討論的, openfaas/faas-netes issue 135 說明了一個類似的問題,並提到了一個可能的解決方案:

imagePullPolicy如果沒有提到應該默認為Never而不是Always

OP Tim Jarvis意識到:

我意識到這不是身份驗證問題,而是它一直想從外部存儲庫中提取。
我的解決方法是使用imagePullPolicyIfNotPresent

這也發生在我身上,檢查發送檢索圖像的策略很重要,有些論壇中描述了一些方法,您可以通過如下設置您喜歡的注冊表來啟動您的 minikube,作為路徑。

$ minikube start --cpus 2 --disk-size 50g --memory 5000 --insecure-registry your.registry.com:5000

另一種方法是在 minikube 的開頭通過 docker-env 呈現環境變量,如下所示,並在命令后生成鏡像。

$ eval $(minikube docker-env)

另一種選擇是通過 docker load 將圖像導入到現有的。

在容器定義中設置以下屬性:

imagePullPolicy: IfNotPresent

例子:

  ...
  containers:
    - name: podhealthexample
      image: podhealth-pod-a:latest
      ports:
        - containerPort: 80
      imagePullPolicy: IfNotPresent

嘗試以下步驟:

  • eval $(minikube docker-env)
  • minikube start

暫無
暫無

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

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