我正在尝试使用 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 | 的 kubernetes 虚拟机 | Invoke-Expression
(仅限 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 只是不知何故不知道在哪里可以找到我的图像。有谁知道我如何让它工作?
最佳答案
我找到了解决方案,它是由 this 中的用户建议的github线程
If anyone else ends up on this thread, the solution that worked for me was updating the image pull policy, you can find info on this here. From the docs: Be default, the kubelet will try to pull each image from the specified registry. You need to update this so it can look locally.
If you're running from the CLI, add --image-pull-policy=IfNotPresent to your kubectl run, i.e.
kubectl run some-node-proj --image=my-awesome-local-image:v1 --image-pull-policy=IfNotPresent
添加 --image-pull-policy=IfNotPresent
让我可以毫无问题地运行容器。
关于windows - Windows Pod 上的 Kubernetes Minikube 拉取镜像失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051610/