最近在学习kubernetes的使用,在部署SpringBoot项目的时候,总是拉取不到本地的docker镜像,提示就是:repository does not exist or may require 'docker login': denied: requested access to the resource is denied
,pod描述如下图所示
而我当前的docker镜像明明是有的
并且我的kubernets部署文件deploy.yaml也是配置的不从远程拉取镜像,如下
刚开始的时候我怀疑是我的某一个文件名称写错了,但检查过后确定没有问题,然后我就开始仔细看报错的信息,发现了问题,因为我测试使用的是k8s集群,我是在master上执行的命令,在拉取镜像的时候k8s默认分配到了我另一台机器node上来创建pod,而另一个node节点是没有这个镜像的
如果有默认的调度策略,那么肯定可以指定某个node来拉取镜像的,参考了网上的资料,在deploy.yaml加了nodeName
来去指定node节点,如下图所示,nodeName后面是node的名称,这样在部署的时候k8s就会分配到我集群中的master节点了.
然后删除完刚才错误的deployment,重新部署,成功
参考文章:
1.k8s使用本地镜像https://blog.csdn.net/u010039418/article/details/86578420
2.【Kubernetes】Pod调度到指定Nodehttps://blog.csdn.net/u013201439/article/details/79436465