[英]Kubernetes Minikube on Windows Pod failed to pull image
我正在嘗試使用 Minikube 和 Hyper-V 在 Windows 上運行 Kubernetes。 我已經成功地使用minikube start --vm-driver=hyperv --hyperv-virtual-switch=KuberNAT
成功運行minikube start --vm-driver=hyperv --hyperv-virtual-switch=KuberNAT
並檢查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 minikube docker-env | Invoke-Expression
minikube docker-env | 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 不知何故不知道在哪里可以找到我的圖像。 有誰知道我怎樣才能讓它工作?
我找到了解決方案,這是一個用戶在這個github 線程中建議的
如果其他人最終出現在此線程上,對我有用的解決方案是更新映像拉取策略,您可以在此處找到有關此的信息。 來自文檔:默認情況下,kubelet 將嘗試從指定的注冊表中提取每個圖像。 您需要更新它,以便它可以在本地查看。
如果您從 CLI 運行,請將 --image-pull-policy=IfNotPresent 添加到您的 kubectl 運行中,即
kubectl 運行 some-node-proj --image=my-awesome-local-image:v1 --image-pull-policy=IfNotPresent
添加--image-pull-policy=IfNotPresent
允許我運行容器沒問題。
或者,我通過將驅動程序從 hyperkit 更改為 docker 來開始工作。 似乎 hyperkit 有網絡問題。
minikube start --driver=docker
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.