【问题标题】:kubectl describe pod depl-im-54cbb55ccb-mjl6qkubectl 描述 pod depl-im-54cbb55ccb-mjl6q
【发布时间】:2022-01-02 08:11:22
【问题描述】:

一旦我安装了 docker 并运行它,我也安装了 kubernetes,然后我安装了 minikube 并启动它。我通过 kubectl create deployment --image=imageName imageName 创建了一些部署 当我得到这些结果的豆荚时,我想要一个解决方案 我试图理解 kubernetes 错误,但没有,当我得到我的 pod 时,我得到了这些

PS C:\Users\ahmed> kubectl get pods
NAME                        READY   STATUS         RESTARTS   AGE
depl-im-54cbb55ccb-mjl6q    0/1     ErrImagePull   0          86m
ngnix-app-8d489bb64-tlvrn   0/1     ErrImagePull   0          15h

当描述一个(像'ngnix-app-8d489bb64-tlvrn')我得到:

PS C:\Users\ahmed> kubectl describe pod depl-im-54cbb55ccb-mjl6q

Name:depl-im-54cbb55ccb-mjl6q

Namespace:    default

Priority:     0

Node:         minikube/192.168.49.2

Start Time:   Sat, 01 Jan 2022 12:26:05 +0200

Labels:       app=depl-im
              pod-template-hash=54cbb55ccb

Annotations:  <none>
Status:       Pending

IP:           172.17.0.4
IPs:
  IP:           172.17.0.4
Controlled By:  ReplicaSet/depl-im-54cbb55ccb

Containers:
  depl-im:
    Container ID:
    Image:          depl-im
    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 kube-api-access-b9f8h (ro)

Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True

Volumes:
  kube-api-access-b9f8h:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
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       86m                  default-scheduler  Successfully assigned default/depl-im-54cbb55ccb-mjl6q to minikube
  Normal   Pulling         84m (x4 over 86m)    kubelet            Pulling image "depl-im"
  Warning  Failed          84m (x4 over 86m)    kubelet            Failed to pull image "depl-im": rpc error: code = Unknown desc = Error response from daemon: pull access denied for depl-im, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed          84m (x4 over 86m)    kubelet            Error: ErrImagePull
  Warning  Failed          84m (x6 over 86m)    kubelet            Error: ImagePullBackOff
  Normal   BackOff         56m (x128 over 86m)  kubelet            Back-off pulling image "depl-im"
  Normal   SandboxChanged  114s                 kubelet            Pod sandbox changed, it will be killed and re-created.
  Normal   BackOff         33s (x2 over 61s)    kubelet            Back-off pulling image "depl-im"
  Warning  Failed          33s (x2 over 61s)    kubelet            Error: ImagePullBackOff
  Normal   Pulling         18s (x3 over 80s)    kubelet            Pulling image "depl-im"
  Warning  Failed          15s (x3 over 62s)    kubelet            Failed to pull image "depl-im": rpc error: code = Unknown desc = Error response from daemon: pull access denied for depl-im, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed          15s (x3 over 62s)    kubelet            Error: ErrImagePull

【问题讨论】:

  • 您的部署规范说 image: depl-im,但这不是标准的 Docker Hub 映像。您是否采取了其他措施使该图像存在于 minikube 环境中?
  • 我无法理解你的意图
  • 你应该先执行docker login来获取docker registry的访问权限。
  • 我已经这样做了,但不起作用

标签: kubernetes kubectl minikube


【解决方案1】:

如果 kubernetes 尝试拉取的此映像由私有映像存储库托管,则您需要将包含凭据的密钥放置在部署部署/pod 所在的同一 kubernetes 命名空间中。

然后,使用

imagePullSecrets:
  - name: secret-name

在您的部署规范中。

供参考:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

如果您尝试在 Kubernetes 中使用本地构建的 docker 镜像,请查看以下内容:https://medium.com/swlh/how-to-run-locally-built-docker-images-in-kubernetes-b28fbc32cc1d

【讨论】:

    【解决方案2】:

    请使用以下命令首先登录您的图像所在的存储库:

    #docker login `repository url` -u `username` -p `password` 
    

    然后尝试手动获取:

    #docker pull `imagename`
    

    【讨论】:

      猜你喜欢
      • 2017-03-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2021-10-15
      • 2017-08-30
      相关资源
      最近更新 更多