k8s使用私有鏡像倉庫Harbor下載鏡像時當Pod分配到其中一個節點時無法下載鏡像報錯ImagePullBackOff

兩台node配置一致 docker配置文件中也配置了Harbor信息
cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://7sl94zzz.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.11","192.168.1.61"]
}
查看pod描述

Failed to pull image "192.168.1.11/project/tomcat": rpc error: code = Unknown desc = Error response from daemon: pull access denied for 192.168.1.11/project/tomcat, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
配置的secret配置文件如下
apiVersion: v1 kind: Secret metadata: name: registry-pull-secret data: .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEuNjEiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuNiAobGludXgpIgoJfQp9 type: kubernetes.io/dockerconfigjson
該秘鑰獲取方式為在已經登錄私有鏡像倉庫的node使用命令獲取
cat /root/.docker/config.json | base64 -w0
使用yaml文件創建的秘鑰在其中一台node沒有生效 ,使用命令創建一個secret
kubectl create secret docker-registry registry-pull-secret --namespace=default --docker-server=192.168.1.11 --docker-username=admin --docker-password=Harbor12345 --docker-email=unchch.xt@gmail.com
使用命令創建的格式為
kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
其中my-secret為自定義name
把使用命令創建的secret導出yaml文件進行對比
kubectl get secret registry-pull-secret -o yaml>>registry-pull-secret.yaml

把使用命令創建的秘鑰替換則正常
本次錯誤其中一台node是可以正常pull鏡像的,另外一台node認證錯誤無法正常pull鏡像,使用base64獲取的秘鑰和使用命令創建獲取的秘鑰也不相同,本次錯誤原因未知。
