k8s集群拉取镜像报错:not exist or may require docker login

前提

新启动一个Rancher管理集群,将原有集群作为资源集群加入Rancher管理集群,提升集群稳定性和安全性。集群合并调整期间顺利完成,集群升级完成后,原Rancher集群升级业务服务时发现报错如下:

ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: pull access denied for reg.itsiv.com/lingxi/develop/lingxi-agent, repository does not exist or may require 'docker login'

解决办法:

根据报错内容基本可以识别问题,集群无法正常拉取公司镜像仓库镜像文件报错!出现此类问题要不连不上镜像仓库,要不下载镜像文件使用的登陆用户密码不对。因为公司其他项目可以正常拉取镜像,基本可以断定为拉取镜像账户密码不对导致。简要整理处理办法如下:

1:纯docker环境

如果纯docker环境只需要执行:

docker login -u reg-user -p 123 reg.itsiv.com
docker login -u 仓库用户 -p 密码 仓库地址

2:kubernetes 集群环境

如果问题出现在k8s集群环境比docker环境处理略复杂,需要在服务运行namespace新建一个秘钥解决问题,创建命令如下:

创建secret

kubectl --namespace ip \
    create secret docker-registry regitsiv  \
    --docker-server=reg.itsiv.com \
    --docker-username=reguser \
    --docker-password=123 \
    --docker-email=reguser@itsiv.com

#解释
参考原站信息

查看secret详细信息

通过以下命令可以查看特定secrets的详细信息。
参考原站信息

修改secret信息

在secrets创建后可以修改一些内容,但不能修改Namespace。
参考原站信息

更新服务拉取镜像秘钥信息

服务如果已经迁移至新集群,发现镜像无法下载,可以先咋对应空间创建秘钥信息,然后使用打补丁的方式为服务配置拉取镜像的秘钥信息。
参考原站信息
以上命令意思是,在ip这个Namespace中的所有镜像pull操作,都自动使用regitsiv这个账户密码进行认证。


版权声明:本文为kjh2007abc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。