问题
新创建的Deploy在创建Pod时成功,但Pod报错,提示拉取镜像失败。
通过ssh登录到具体的K8S node上,手动执行docker pull 命令,却能成功拉取到对应的镜像。
原因
根本原因:具体的命名空间缺少imagePullSecrets,不同的命名空间不能直接使用default中的imagePullSecrets。
准备K8S环境时,仅在default 命令空间下创建了image pull secret。而开发人员新建了不同的命名空间来部署不同的微服务,虽然都是同一台harbor仓库,但却因为具体的命名空间无法使用default命名空间中的image pull secret,因此出现了无法自动拉取镜像。
而ssh登陆后执行的docker pull命令并不需要image pull secret,只要事先执行了docker login即可成功拉取镜像。
解决
在K8S-master节点上,针对不同的命名空间创建image pull secret(可以同名)。文章来源:https://www.toymoban.com/news/detail-802134.html
kubectl create secret docker-registry registrysecret --docker-server=<harbor地址> --docker-username=admin --docker-password=xxxxx -n <命名空间A>
kubectl create secret docker-registry registrysecret --docker-server=<harbor地址> --docker-username=admin --docker-password=xxxxx -n <命名空间B>
kubectl create secret docker-registry registrysecret --docker-server=<harbor地址> --docker-username=admin --docker-password=xxxxx -n <命名空间C>
相关截图
文章来源地址https://www.toymoban.com/news/detail-802134.html
到了这里,关于K8S 自动拉取镜像失败,手动拉取镜像成功的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!