为什么在此Kubernetes部署中出现ErrImagePull错误?

我正在尝试使用Minikube,Docker Registry和演示节点项目创建本地Kubernetes部署。

我做的第一件事是安装Docker v1.12.3,然后是Minikube v0.12.2。

然后我通过运行此命令创建了一个Docker

Registry容器(通过本教程,仅运行下面的第一个命令)

docker run -d -p 5000:5000 --name registry registry:2

接下来,我运行此minikube命令以创建本地kubernetes集群

minikube start --vm-driver="virtualbox" --insecure-registry="0.0.0.0:5000"

我的项目结构如下:

.

├── Dockerfile

└── server.js

我的Dockerfile看起来像这样:

FROM node:7.1.0

EXPOSE 8080

COPY server.js .

CMD node server.js

然后,我构建了自己的docker映像并将其推送到我的私有存储库中:

docker build -t hello-node .

docker tag hello-node localhost:5000/hello-node

docker push localhost:5000/hello-node

然后,我尝试使用以下命令运行部署:

kubectl run hello-node --image=localhost:5000/hello-node --port=8888

但是然后我得到这个:

sudo kubectl get pods --all-namespaces                                                                                                                             

NAMESPACE NAME READY STATUS RESTARTS AGE

default hello-node-3745105022-gzs5a 0/1 ErrImagePull 0 11m

kube-system kube-addon-manager-minikube 1/1 Running 4 10d

kube-system kube-dns-v20-2x64k 3/3 Running 12 10d

kube-system kubernetes-dashboard-mjpjv 1/1 Running 4 10d

我认为我可能缺少某种Docker注册表身份验证,但是在进行谷歌搜索时,找不到我能理解的东西。有人能指出我正确的方向吗?

使用ssh访问bashkubernetes VM并hello-node使用以下命令从我的私有注册表中提取映像后:

minikube ssh

Boot2Docker version 1.11.1, build master : 901340f - Fri Jul 1

22:52:19 UTC 2016

Docker version 1.11.1, build 5604cbe

docker@minikube:~$ sudo docker pull localhost:5000/hello-node

Using default tag: latest

Pulling repository localhost:5000/hello-node

Error while pulling image: Get http://localhost:5000/v1/repositories/hello-node/images: dial tcp 127.0.0.1:5000: getsockopt: connection refused

localhost:5000的kubernetes主机VM内使用正确的地址?

回答:

看来您正在主机上运行注册表。实际上,您需要在VM内运行注册表。您可以通过首先eval $(minikube docker-env)

在shell中运行此命令,将docker客户端指向minikube VM中的docker守护进程 。

然后,您可以在主机上运行docker build命令,但它将在VM内部构建。

实际上,如果您的目标是仅运行映像的本地版本,则应运行eval $(minikube docker-

env)以指向VM中的docker守护程序,并imagePullPolicy: IfNotPresent在pod

YAML中设置。然后,kubernetes将使用本地构建的映像(如果可用)。

以上是 为什么在此Kubernetes部署中出现ErrImagePull错误? 的全部内容, 来源链接: utcz.com/qa/433110.html

回到顶部