minikube安装k8s过程中ImagePullBackOff问题处理

3,243 阅读1分钟

之前安装在minikube上安装k8s v1.23.13版本,一路畅通,这次升级安装v1.25.3版本,出现镜像无法下载的问题。

minikube start --vm-driver=hyperv --image-mirror-country=cn  --kubernetes-version=v1.25.3

查看Pod状态

kubectl get pod -A

发现metrics-server,kubernetes-dashboard,dashboard-metrics都处于ImagePullBackOff 状态。

kube-system            kube-proxy-4kzzq                            1/1     Running             0             37m
kube-system            kube-scheduler-minikube                     1/1     Running             1 (40m ago)   37m
kube-system            metrics-server-769cd898cd-pjzmr             1/1     ImagePullBackOff    0             37m
kube-system            storage-provisioner                         1/1     Running             1 (37m ago)   37m
kubernetes-dashboard   dashboard-metrics-scraper-b74747df5-csvj8   1/1     ImagePullBackOff    0             37m
kubernetes-dashboard   kubernetes-dashboard-57bbdc5f89-7sbbv       1/1     ImagePullBackOff    0             37m

进一步查看事件详情

kubectl describe pod metrics-server-769cd898cd-pjzmr -n kube-system

发现是镜像无法下载的原因

  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  <unknown>          default-scheduler  Successfully assigned kube-system/metrics-server-769cd898cd-
pjzmr to minikube
  Normal   BackOff    38s                kubelet, minikube  Back-off pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1"
  Warning  Failed     38s                kubelet, minikube  Error: ImagePullBackOff
  Normal   Pulling    24s (x2 over 54s)  kubelet, minikube  Pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1"
  Warning  Failed     9s (x2 over 38s)   kubelet, minikube  Failed to pull image "k8s.gcr.io/metrics-server-amd64:v0.2.1
": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled w
hile waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     9s (x2 over 38s)   kubelet, minikube  Error: ErrImagePull

打开deployment查看配置

kubectl -n kube-system edit deployment metrics-server

image.png

使用minikube ssh命令连接到虚拟机环境。

minikube ssh

使用国内镜像源获取镜像文件

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1

为镜像打上Tag"k8s.gcr.io/metrics-server/"

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1 k8s.gcr.io/metrics-server/metrics-server:v0.6.1

重新启动集群

minikube start

这样就正常了

接下同样的方式处理kubernetes-dashboard,dashboard-metrics。

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0
docker tag  registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard:v2.7.0 docker.io/kubernetesui/dashboard:v2.7.0

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper:v1.0.8 docker.io/kubernetesui/metrics-scraper:v1.0.8

成功后即可查看dashboard了

minikube dashboard