前提
新启动一个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这个账户密码进行认证。