k8s拉取镜像失败处理

k8s拉取镜像失败,报如下错误:

Failed to pull image "172.32.xx.xx/xx/xx.xx.xx:20220224.764": rpc error: code = Unknown desc = Error response from daemon: pull access denied for 172.32.xx.xx/xx/xx.xx.xx, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

处理办法如下:

1、登陆docker,

查看所有docker服务器和登录的用户密码:

cat /root/.docker/config.json

输出结果中,auth 后面接的那一串就是经过base64编码后的用户名和密码信息,这里将其解码:

echo [auth后面的那一串序列] | base64 -d -

之后即可看到用户名和密码,

发现当前docker没有登陆,那么进行登陆

docker login 172.32.XX.XX

然后输入用户名、密码,显示登陆成功

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 xxx.yaml  -n xx发现拉取进行成功

你可能感兴趣的:(k8s,docker,docker,容器,运维)