K8S无法从本地存储库提取图像

时间:2019-03-11 12:28:58

标签: docker kubernetes

我的Docker储存库中有一个映像。我试图从中创建POD,但K8S出现以下错误。

无法提取图像“ cloudanswer:latest”:rpc错误:代码=未知desc =获取https://registry-1.docker.io/v2/:net / http:在等待连接时请求被取消(在等待标头时超过了Client.Timeout)

似乎K8S正在连接到https://registry-1.docker.io/v2/,而不是从本地docker存储库中获取。

如何使K8S为本地docker存储库拍摄图像?

3 个答案:

答案 0 :(得分:0)

Kubernetes支持您可以创建的一种特殊类型的秘密,该秘密将用于获取Pod的图像。 More details here

答案 1 :(得分:0)

如果在集群中使用单个节点,请确保该Docker映像在该节点上可用。 您可以通过

进行检查
docker image ls

还要将imagePullPolicy设置为Never,否则Kubernetes会尝试下载图像。

多个节点集群,您可以使用docker registry image。 使用本地注册表:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

现在正确标记图像:

docker tag ubuntu <dns-name-of-machine>:5000/ubuntu
网络中的所有节点都应该可以访问运行注册表容器的计算机的

dns名称

现在将您的图像推送到本地注册表:

docker push <dns-name-of-machine>:5000/ubuntu

您应该可以将其拉回:

docker pull <dns-name-of-machine>:5000/ubuntu

现在将您的Yaml文件更改为使用本地注册表。

答案 2 :(得分:-1)

imagePullPolicy应该设置为IfNotPresent以从本地docker存储库中提取图像