关于k8s deployment.yaml文件中imagePullSecrets的配置

  更换镜像仓库后,在deployment.yaml中将image的仓库地址修改后,更新deployment,pod一直在ImagePullBackOff状态,describe查看pod信息,会提示是镜像下载失败,但是在宿主机上手动docker pull下载镜像又是能正常下载的,且镜像手动下载后,pod就会变成running状态

 

 

 

  解决办法

1.反复查看deployment.yaml文件之后发现,是imagePullSecrets参数控制了该deployment去连接哪个镜像仓库的

 

2.通过命令去查看私钥(zl-regsecret)指向的镜像仓库地址什么

kubectl get secrets zl-regsecret -n test-env --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d

 

3.查看的镜像仓库和现使用的仓库不是同一个,遂新配置一个私钥(zl-regsecret-new)

kubectl create secret docker-registry zl-regsecret-new(新的私钥名称) --docker-server=镜像仓库地址 --docker-username=镜像仓库的用户名 --docker-password=镜像仓库的密码 -n 名称空间 --docker-email=DOCKER_EMAIL(不填也行)
kubectl create secret docker-registry zl-regsecret-new --docker-server=swr.cn-southwest-2.myhuaweicloud.com --docker-username=cn-southwest-2@EIEN99RIQFGCXPUX3DYF --docker-password=fd171b230be54a7f3b0411f88cc08bdf8d1d97b2aa8e9a21c9b3a40b67d81982 -n prod-env --docker-email=DOCKER_EMAIL
secret/zl-regsecret-new created

  

  

4.将新的私钥名称配置到deployment.yaml文件中

 

5.更新deployment控制器

kubectl apply -f deployment.yaml -n namespace

  

6.在查看pod状态已经是running状态了

 

 

posted @ 2022-02-24 11:43  看见酵母菌  阅读(700)  评论(0编辑  收藏  举报