【问题标题】:Kubernetes Minikube on Windows Pod failed to pull imageWindows Pod 上的 Kubernetes Minikube 无法拉取镜像
【发布时间】:2018-04-13 13:53:39
【问题描述】:

我正在尝试使用 Minikube 和 Hyper-V 在 Windows 上运行 Kubernetes。我已经成功地使用 minikube start --vm-driver=hyperv --hyperv-virtual-switch=KuberNAT 运行 Minikube 并检查 minikube status 给了我

PS > minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.1.74

但现在我正在尝试使用 kubectl 在 kubernetes 中运行图像,我已经设法让我的 powershell 窗口使用 minikube docker-env | Invoke-Expression 指向 kubernetes vm(仅限 powershell,我无法做某事在命令提示符上类似),我必须在每个我想用来将图像推送到 kubernetes 图像的 powershell 窗口中插入这个命令。

我遇到的问题是我无法运行容器,我可以使用 kubectl run cloudconfig --image=cloudconfig“部署”一个映像,但创建的 pod 给了我这个错误:

Failed to pull image "cloudconfig": rpc error: code = Unknown desc =
Error response from daemon: repository cloudconfig not found: does not
exist or no pull access

如果我运行 docker image ls 我会得到

REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
cloudconfig                                            latest              9199d500e746        2 minutes ago       105MB
openjdk                                                8-jre-alpine        5699ac7295f9        6 days ago          81.4MB
gcr.io/google_containers/k8s-dns-sidecar-amd64         1.14.5              fed89e8b4248        5 weeks ago         41.8MB
gcr.io/google_containers/k8s-dns-kube-dns-amd64        1.14.5              512cd7425a73        5 weeks ago         49.4MB
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64   1.14.5              459944ce8cc4        5 weeks ago         41.4MB
gcr.io/google_containers/kubernetes-dashboard-amd64    v1.7.0              284ec2f8ed6c        5 weeks ago         128MB
gcr.io/google-containers/kube-addon-manager            v6.4-beta.2         0a951668696f        4 months ago        79.2MB
gcr.io/google_containers/pause-amd64                   3.0                 99e59f495ffa        18 months ago       747kB

docker container ls 给了我

CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS               NAMES
3d79bab2a212        gcr.io/google_containers/pause-amd64:3.0               "/pause"                 41 seconds ago      Up 40 seconds                           k8s_POD_cloudconfig-88c867589-qpqph_default_ac2dd8bb-bee1-11e7-8e51-00155d00ba16_0
e6723a726c26        gcr.io/google_containers/k8s-dns-sidecar-amd64         "/sidecar --v=2 --..."   43 minutes ago      Up 43 minutes                           k8s_sidecar_kube-dns-6fc954457d-gvmz6_kube-system_f5de0b0e-be4b-11e7-8699-00155d00ba16_1
36980feeff76        gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64   "/dnsmasq-nanny -v..."   43 minutes ago      Up 43 minutes                           k8s_dnsmasq_kube-dns-6fc954457d-gvmz6_kube-system_f5de0b0e-be4b-11e7-8699-00155d00ba16_1
d3d61e3861f0        gcr.io/google_containers/k8s-dns-kube-dns-amd64        "/kube-dns --domai..."   43 minutes ago      Up 43 minutes                           k8s_kubedns_kube-dns-6fc954457d-gvmz6_kube-system_f5de0b0e-be4b-11e7-8699-00155d00ba16_1
45208e98bd7f        gcr.io/google_containers/kubernetes-dashboard-amd64    "/dashboard --inse..."   43 minutes ago      Up 43 minutes                           k8s_kubernetes-dashboard_kubernetes-dashboard-8hw2w_kube-system_f5bb8241-be4b-11e7-8699-00155d00ba16_1
1fbb3688711d        gcr.io/google_containers/pause-amd64:3.0               "/pause"                 43 minutes ago      Up 43 minutes                           k8s_POD_kube-dns-6fc954457d-gvmz6_kube-system_f5de0b0e-be4b-11e7-8699-00155d00ba16_1
c71ab868584c        gcr.io/google-containers/kube-addon-manager            "/opt/kube-addons.sh"    43 minutes ago      Up 43 minutes                           k8s_kube-addon-manager_kube-addon-manager-minikube_kube-system_9831e93c3188555873fdb49f43198eef_1
1df643d195d2        gcr.io/google_containers/pause-amd64:3.0               "/pause"                 43 minutes ago      Up 43 minutes                           k8s_POD_kubernetes-dashboard-8hw2w_kube-system_f5bb8241-be4b-11e7-8699-00155d00ba16_1
28f48e09fd46        gcr.io/google_containers/pause-amd64:3.0               "/pause"                 43 minutes ago      Up 43 minutes                           k8s_POD_kube-addon-manager-minikube_kube-system_9831e93c3188555873fdb49f43198eef_1

所以我假设所有其他事情都正常工作,而 kubernetes 只是不知何故不知道在哪里可以找到我的图像。有谁知道我怎样才能让它工作?

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: windows docker kubernetes minikube


【解决方案1】:

我找到了解决方案,这是thisgithub线程中的用户建议的

如果其他人结束了这个线程,那么对我有用的解决方案 正在更新图像拉取策略,您可以在此处找到相关信息。 来自文档:默认情况下,kubelet 将尝试提取每个图像 从指定的注册表。您需要更新它,以便它看起来 本地。

如果您从 CLI 运行,请添加 --image-pull-policy=IfNotPresent 到你的 kubectl 运行,即

kubectl run some-node-proj --image=my-awesome-local-image:v1 --image-pull-policy=IfNotPresent

添加--image-pull-policy=IfNotPresent 允许我运行容器没有问题。

【讨论】:

  • 作为一个 Kubernetes 新手,这似乎很荒谬。但是谢谢,它允许我在本地创建的 docker 映像最终运行。 wtf.
  • "IfNotPresent" 应该是根据the documentation 的默认设置。也许需要注意的是,如果您使用:latest 作为识别标签,kubernetes 总是会尝试拉取图像。
  • 这绝对不是解决方案。 Docker 镜像是在本地构建的,在 minikube 虚拟机之外。添加此开关不会执行任何操作,因为图像存储库不可见。此答案需要删除。
【解决方案2】:

另外,我通过将驱动程序从 hyperkit 更改为 docker 来让我的工作。似乎 hyperkit 有网络问题。

minikube start --driver=docker

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 2023-04-03
    • 2018-07-13
    • 1970-01-01
    • 2016-08-20
    • 2018-11-16
    • 2022-08-09
    • 2018-08-09
    • 2019-02-16
    相关资源
    最近更新 更多