關於k8s deployment.yaml檔案中imagePullSecrets的配置
阿新 • • 發佈:2022-02-24
更換映象倉庫後,在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 -dc
3.檢視的映象倉庫和現使用的倉庫不是同一個,遂新配置一個私鑰(zl-regsecret-new)
kubectl create secret docker-registry zl-regsecret-new(新的私鑰名稱) --docker-server=映象倉庫地址 --docker-username=映象倉庫的使用者名稱 --docker-password=映象倉庫的密碼 -n 名稱空間 --docker-email=DOCKER_EMAIL(不填也行)
4.將新的私鑰名稱配置到deployment.yaml檔案中
5.更新deployment控制器
kubectl apply -f ***.yaml -n namespace