minikube无法启动:“minikube service hello-minikube”无法访问问题解决

minikube无法启动:“minikube service hello-minikube”无法访问问题解决,第1张

1.问题缘起

使用minikube可以快速地在本机搭建kubernetes实验集群,用于学习和模拟kubernetes集群 *** 作,但是在跟着官网下载好kubernetes和minikube后,在执行minikube service hello-minikube时启动了浏览器,但是却无法看到内容,说明hello-minikube部署出现问题,不合符预期:

2.解决过程

1.奇怪的IP地址
在启动浏览器页面后,发现使用到的是http://192.168.49.2:30020/访问的,这里的192.168.49.2地址不是默认的localhost,这个ip应该是NodeIP,属于在minikube集群中才能访问的IP,所以理论上来说想在浏览器访问的话,应该是走localhost:8080,但是一样无法访问,开始排查部署是否成功。


2.查看部署状态
首先查看Pod状态:kubectl get pod -o wide,发现hello-minikube的Pod并没有Ready:

再查看Deployment状态:kubectl get deployment -o wide,发现hello-minikube的Deployment也没有Ready:

这说明我们按照官网的流程无法正确将hello-minikube部署起来,继续深入日志排查问题。



3.查看部署日志
从前面的信息中我们已经知道Pod名称为hello-minikube-7bc9d7884c-ls8wx,所以可以获取到Pod的构建日志:kubectl describe pod hello-minikube-7bc9d7884c-ls8wx,发现在拉取k8s.gcr.io/echoserver:1.4这个镜像过程中发生错误,所以Pod无法构建成功。




问题找到了:官网中的k8s.gcr.io/echoserver:1.4镜像被墙,在国内无法拉取到镜像,导致Pod构建失败。


所以解决这个问题的方法有两个:
1.第一个办法就是找kubernetes及docker的国内代理并配置:在启动minikube时携带proxy参数,指定国内镜像源
minikube start --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers,尝试过后发现拉取该镜像仍然失败。



2.第二个办法就是寻找其他可用的替代镜像:

  • 尝试从docker hub中查找echoserver这个镜像: docker search echoserver

发现了cilium/echoserver这个镜像是从k8s.gcr.io/echoserver中copy的上传的,所以尝试使用cilium/echoserver这个镜像构建hell-minikube:

  • 首先删除掉之前的部署流程:kubectl delete deployment hello-minikube
  • 删掉之前的Service:kubectl delete service hello-minikube
  • 然后重新部署:kubectl create deployment hello-minikube --image=cilium/echoserver,获取Pod状态及Deployment状态发现已经Ready且Running,说明部署成功了:

  • 在Node节点暴露hello-minikube服务的端口8080:kubectl expose deployment hello-minikube --type=NodePort --port=8080,并将本机7080端口映射到Node 8080端口:kubectl port-forward service/hello-minikube 7080:8080
  • 浏览器中输入localhost:7080即可访问到hello-minikube服务

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/607225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)

保存