簡體   English   中英

kubectl ImagePullBackOff 由於秘密

[英]kubectl ImagePullBackOff due to secret

我在 minikube 中創建 kubevirt,最初 kubevirt-operator.yaml 因 ImagePullBackOff 而失敗。 在我在 yaml 中添加秘密之后

imagePullSecrets:
  - name: regcred
containers:

我所有的 virt-operator* 開始運行。 virt-api* pods 仍然顯示 ImagePullBackOff。 錯誤出現為

Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  27m                    default-scheduler  Successfully assigned kubevirt/virt-api-787487d9cd-t68qf to minikube
  Normal   Pulling    25m (x4 over 27m)      kubelet            Pulling image "us-ashburn-1.ocir.io/xxx/virt-api:v0.54.0"
  Warning  Failed     25m (x4 over 27m)      kubelet            Failed to pull image "us-ashburn-1.ocir.io/xxx/virt-api:v0.54.0": rpc error: code = Unknown desc = Error response from daemon: pull access denied for us-ashburn-1.ocir.io/xxx/virt-api, repository does not exist or may require 'docker login': denied: Anonymous users are only allowed read access on public repos
  Warning  Failed     25m (x4 over 27m)      kubelet            Error: ErrImagePull
  Warning  Failed     25m (x6 over 27m)      kubelet            Error: ImagePullBackOff
  Normal   BackOff    2m26s (x106 over 27m)  kubelet            Back-off pulling image "us-ashburn-1.ocir.io/xxx/virt-api:v0.54.0" 

手動我可以使用 docker login 提取相同的圖像。 非常感謝任何幫助。 謝謝

這個 docker 鏡像看起來像是在一個私有注冊表中(並且來自 oracle)。 而且我認為regcred是不正確的。 您可以使用 docker login 登錄嗎? 如果是這樣,您可以像這樣創建regcred秘密

$ kubectl create secret docker-registry regcred --docker-server=<region-key>.ocir.io --docker-username='<tenancy-namespace>/<oci-username>' --docker-password='<oci-auth-token>' --docker-email='<email-address>'

另請查看此 Oracle 教程: https ://www.oracle.com/webfolder/technetwork/tutorials/obe/oci/oke-and-registry/index.html

在這里,您可以找到將秘密值實施到集群的步驟

如果您使用的是私有注冊表,請檢查您的密鑰是否存在並且該密鑰是否正確。 您的秘密也應該在同一個命名空間中。

你的 Minikube 是一個虛擬機,而不是你的本地主機。 你試試這個

  1. 打開終端
  2. 評估 $(minikube docker-env)
  3. 碼頭工人建造。
  4. kubectl create -f 部署.yaml

只是有效的這個終端。 如果關閉終端再次打開終端並寫入 eval $(minikube docker-env)

eval $(minikube docker-env) 此代碼在 Minikube 中構建映像

另外,嘗試使用docker login在所有節點上登錄 docker。

還有一篇冗長的博客文章描述了如何在此處深入調試圖像拉回

嘿,如果你看這里 我認為您可以找到一些有用的文檔。

他們正在做的是,他們上傳 dockerconfig 文件,該文件將登錄憑據作為秘密,然后在部署中引用該文件。
您可以嘗試按照這些步驟並做類似的事情。 讓我知道它是否有效

暫無
暫無

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

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