k8s拉取镜像失败,报如下错误:
Failed to pull image "172./xx/:20220224.764": rpc error: code = Unknown desc = Error response from daemon: pull access denied for 172./xx/, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
处理办法如下:
1、登陆docker,
查看所有docker服务器和登录的用户密码:
cat /root/.docker/
输出结果中,auth 后面接的那一串就是经过base64编码后的用户名和密码信息,这里将其解码:
echo [auth后面的那一串序列] | base64 -d -
之后即可看到用户名和密码,
发现当前docker没有登陆,那么进行登陆
docker login 172.
然后输入用户名、密码,显示登陆成功
2、继续拉取镜像还是不行,用docker pull 可以拉下来,但是k8s不行
3、配置添加项目所在命名空间的私有仓库秘钥,以便拉取镜像时完成认证过程
kubectl create secret docker-registry harbor-secret(别名) --namespace=项目所在命名空间 --docker-server=Harbor地址 --docker-username=账户 --docker-password=Harbor密码
4、更新服务yaml文件,添加引用创建的秘钥
` spec:
containers:
- image:
imagePullPolicy: Always
name:
imagePullSecrets:
- name: harbor-secret
5、添加之后,用kubectl apply -f -n xx发现拉取进行成功