无法拉取映像“<myimage>/posts:0.0.1”:rpc 错误:代码 = 未知 desc = 来自 dae 的错误响应... 如何使用 docker 映像修复此问题?

6 linux debian docker kubernetes

无法拉取映像“/posts:0.0.1”:rpc 错误:代码 = 未知 desc = 来自守护程序的错误响应:对 /posts 的拉取访问被拒绝,存储库不存在或可能需要“docker 登录”:被拒绝:请求访问资源被拒绝

Debian 10,安装了 minikube 和 kubectl 以及 docker。如果我用这个图像运行 docker - 一切都很好。

pavel@debian:~$ kubectl 版本 客户端版本: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4", GitCommit:"123", GitTreeState:"clean", BuildDate:" 2020-11-11T13:17:17Z", GoVersion:"go1.15.2", 编译器:"gc", 平台:"linux/amd64"} 服务器版本: version.Info{Major:"1", Minor:"19 ", GitVersion:"v1.19.4", GitCommit:"123", GitTreeState:"clean", BuildDate:"2020-11-11T13:09:17Z", GoVersion:"go1.15.2", 编译器:"gc",平台:“linux/amd64”}

帖子.yaml

apiVersion: v1
kind: Pod
metadata:
  name: posts
spec:
  containers:
    - name: posts
      image: <mylogin>/posts:0.0.1
Run Code Online (Sandbox Code Playgroud)

kubectl apply -f posts.yaml

debian:~$ kubectl 描述 pod 帖子

Name:         posts
Namespace:    default
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Wed, 25 Nov 2020 07:06:47 +0400
Labels:       <none>
Annotations:  <none>
Status:       Pending
IP:           172.17.0.4
IPs:
  IP:  172.17.0.4
Containers:
  posts:
    Container ID:   
    Image:          <mylogin>/posts:0.0.1
    Image ID:       
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-b9gkg (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  default-token-b9gkg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-b9gkg
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                   From               Message
  ----     ------     ----                  ----               -------
  Normal   Scheduled  23m                   default-scheduler  Successfully assigned default/posts to minikube
  Normal   Pulling    21m (x4 over 23m)     kubelet            Pulling image "<mylogin>/posts:0.0.1"
  Warning  Failed     21m (x4 over 23m)     kubelet            Failed to pull image "<mylogin>/posts:0.0.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for <mylogin>/posts, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     21m (x4 over 23m)     kubelet            Error: ErrImagePull
  Warning  Failed     7m53s (x63 over 23m)  kubelet            Error: ImagePullBackOff
  Normal   BackOff    2m58s (x84 over 23m)  kubelet            Back-off pulling image "<mylogin>/posts:0.0.1"
Run Code Online (Sandbox Code Playgroud)

Jui*_*uin 13

Minikube 无法直接访问您的本地 docker 存储库。有多种方法可以解决此问题,此处对其进行了详细说明:https ://minikube.sigs.k8s.io/docs/handbook/pushing/

就我个人而言,我只是简单地将图像添加到 Minikube 缓存中minikube cache add <image tag>,您需要将imagePullPolicyyaml 文件内部更改为 Never。这样,它将默认使用您缓存到 minikube 中的本地映像。添加缓存后也可以重新加载缓存。如果您在将容器添加到集群之前使用 Docker 测试容器,这可能是最简单的方法。

您还可以尝试其他方法,包括使用 Minikube 内的守护进程直接构建容器映像。


P E*_*ram 4

图片名称不正确。正确更新图像名称和标签。如果映像托管在私有注册表中,那么您需要创建具有登录私有注册表凭据的注册表密钥。请点击以下链接获取进一步帮助 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/