前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TKE集群pod镜像拉取失败定位思路

TKE集群pod镜像拉取失败定位思路

原创
作者头像
聂伟星
修改2020-09-06 14:02:13
2.2K0
修改2020-09-06 14:02:13
举报
文章被收录于专栏:腾讯云容器运维

一般我们在部署服务的时候会遇到一些镜像拉取失败的问题,这里简单讲述下如何定位解决这类镜像拉取失败的问题,大致的定位思路如下

常见的镜像拉取报错:

  • imagePullBackoff
  • imagelnspectError
  • ErrImagePull
  • ErrImageNeverPull
  • RegistryUnavailable
  • InvalidImageName

1. 节点上是否可以拉取镜像

如果pod运行拉取镜像失败,可以先确认下节点是否可以拉取镜像成功,因为pod运行也是调用节点docker拉取镜像到节点上,然后运行,如果节点拉取镜像失败,pod肯定会启动失败。

节点拉取镜像失败可以看下是拉取内网仓库还是外网镜像,如果是外网确定下节点是否能访问互联网,如果是内网看下能否登陆内网仓库地址。

TCR仓库有访问白名单,确认下节点是否在配置的仓库白名单内。

2. 仓库秘钥是否创建

节点可以拉取镜像,但是在运行pod却拉取镜像失败,这里大部分原因是pod没有配置仓库的登录秘钥。

如果是拉取ccr上的私有镜像,这里可以看下集群中命名空间的qcloudregistrykey秘钥是否有下发,没有下发则点击下发。

如果是拉取TCR或者其他的镜像仓库,这里需要自己先新建secret,这里填写secret名称,所要下发的命名空间,仓库地址,登录的账号和用户名,创建成功后再按照上一步在负载中配置创建的secret即可。

3. 仓库秘钥是否在yaml中有配置

这里我们需要在yaml中通过imagePullSecrets来指定拉取镜像的秘钥,这里可以直接修改yaml或者在控制台进行配置

4. 仓库的秘钥对应的账号密码是否正确

如果上述步骤排查都没问题,节点拉取镜像没问题,仓库秘钥也有在yaml中配置。

  • 这里首先检查下对应命名空间下有没有secret,有可能ns是新建的秘钥没有下发,确认下镜像仓库的拉取秘钥在你部署服务的命名空间存在。
  • 查看镜像的secret,然后解码下,检查下镜像仓库地址,用户名和密码是否正确。这里我们以qcloudregistrykey为例
代码语言:javascript
复制
[root@VM_1_4_centos ~]# kubectl get secret -n default qcloudregistrykey -o yaml
apiVersion: v1
data:
  .dockercfg: eyJjY3IuY2NzLnRlbmNlbnR5dW4uY29tjoie0FwcGxpY2F0aW9uVG9rZW46Nzg3Yjg2NDlkMjI4MDc2ZGNhNmVjYmE0NDcxNWNjNWZ9IiwiZW1haWwiOiIyMTU5OTczNDE3QHFxLmNvbSIsImF1dGgiOiJNakUxT1RrM016UXhOenA3UVhCd2JHbGpZWFJwYjI1VWIydGxiam8zT0RkaU9EWTBPV1F5TWpnd056WmtZMkUyWldOaVlUUTBOekUxWTJNMVpuMD0ifX0=
kind: Secret
metadata:
  creationTimestamp: "2020-06-02T03:22:49Z"
  labels:
    qcloud-app: qcloudregistrykey
  name: qcloudregistrykey
  namespace: default
  resourceVersion: "8573245592"
  selfLink: /api/v1/namespaces/default/secrets/qcloudregistrykey
  uid: 55de0f5d-a480-11ea-8fe7-0a5ffefb2e9f
type: kubernetes.io/dockercfg
[root@VM_1_4_centos ~]# echo "eyJjY3IuY2NzLnRlJuYW1lIjoiMjE1OTk3MzQxNyIsInBhc3N3b3JkIjoie0FwcGxpY2F0aW9uVG9rZW46Nzg3Yjg2NDlkMjI4MDc2ZGNhNmVjYmE0NDcxNWNjNWZ9IiwiZW1haWwiOiIyMTU5OTczNDE3QHFxLmNvbSIsImF1dGgiOiJNakUxT1RrM016UXhOenA3UVhCd2JHbGpZWFJwYjI1VWIydGxiam8zT0RkaU9EWTBPV1F5TWpnd056WmtZMkUyWldOaVlUUTBOekUxWTJNMVpuMD0ifX0=" 
| base64 -d
{"ccr.ccs.tencentyun.com":{"username":"2597","password":"{ApplicationToken:787b8649d228076dca6ecba44715cc5f}","email":"21417@qq.com","auth":"MjE1OTk3MzQxNzp7QXBwbGljYXRpb25Ub2tlbE2ZWNiYTQ0NzE1Y2M1Zn0="}}
  • 如果配置没问题,那么有可能是你使用的访问仓库账号密码是临时的,TCR会提供临时的访问凭证和永久访问凭证,这里需要永久的访问凭证登录信息。

常见问题

1. mac登录ccr镜像仓库报错

代码语言:javascript
复制
sudo docker login --username=xxxx ccr.ccs.tencentyun.com
Password:
Sorry, try again.
Password:
Sorry, try again.
Password:
sudo: 3 incorrect password attempts

解决方案:客户用了sudo了 所以显示的Password是要输入你的系统密码。。。 输入之后 还会显示Password然后再输入仓库密码,这边登录命令去掉sudo

2. 上传镜像到CCR失败报tag达到了上限

ccr上的镜像tag有限制一般是100个,如果达到了上限需要删除旧镜像tag或者提交工单帮忙提升下配额

3. 拉取某个镜像仓库的镜像没权限

需要在CAM中给子账号赋予对应镜像仓库的pull权限

4. docker拉取镜像失败报错域名解析失败

Failed to pull image "ccr.ccs.tencentyun.com/mtp-light/light-web:light_base_container": rpc error: code = Unknown desc = Error response from daemon: Get https://ccr.ccs.tencentyun.com/v2/: dial tcp: lookup ccr.ccs.tencentyun.com on 183.60.82.98:53: write udp 10.155.0.6:38639->183.60.82.98:53: write: operation not permitted Failed to pull image "ccr.ccs.tencentyun.com/mtp-light/light-web:light_base_container": rpc error: code = Unknown desc = Error response from daemon: Get https://ccr.ccs.tencentyun.com/v2/: dial tcp: lookup ccr.ccs.tencentyun.com on 183.60.82.98:53: no such host

解析域名发现报错

查看message日志

调整conntrack参数

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 节点上是否可以拉取镜像
  • 2. 仓库秘钥是否创建
  • 3. 仓库秘钥是否在yaml中有配置
  • 4. 仓库的秘钥对应的账号密码是否正确
  • 常见问题
    • 1. mac登录ccr镜像仓库报错
      • 2. 上传镜像到CCR失败报tag达到了上限
        • 3. 拉取某个镜像仓库的镜像没权限
          • 4. docker拉取镜像失败报错域名解析失败
          相关产品与服务
          容器镜像服务
          容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档