Minikube Linux(Centos,Debian,Ubuntu)搭建
前言
最近工作中要用到 Prometheus + Grafana ,之前一直都是用 Azure 或者 AWS 现成的 k8s集群,所以需要单独搭建一个k8s用于实践。
所以了解到了minikube,也是非常简单,两行命令就可以搭建一个的K8s,也是真的简单。
开始搭建
在搭建过程中,碰到许许多多问题,一些常见的硬件,环境监测问题,都有解决方案
但是有个问题,困扰了我两天,终于解决了,所以记录一下解决方案,实现真正的三步启动minikube
到这里,你就可以使用 minikube start 启动 minikube了
minikube start
如果你在国内,且没有配置全局代理,就会很容易碰见 Initial timeout of 40s passed错误
我们通过 --v=9 开启最详细的日志,会发现千奇百怪的错误,例如
- 6443端口请求timeout
- kube-apiservser找不到
等等等,我也是卡在这里
其实这个日志具有误导性,找过很多帖子和 github issues 发现基本上说的都是docker image问题,下载不下来
我尝试过也没用
minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
解决方案
最后详细看日志,发现他修改一下配置文件,例如hostname等等
但是我查看并没有发现本机上有被修改,这个时候看到了 issues,给出了解决方案
docker exec -it minikube bash
docker pull registry.aliyuncs.com/google_containers/pause:3.6
docker tag registry.aliyuncs.com/google_containers/pause:3.6 k8s.gcr.io/pause:3.6
docker exec 不是进入容器嘛,后面发现,minikube start 启动的时候,会启动一个运行 kicbase/stable:v0.0.36
进入容器,发现容器里面也有一个 docker,所以我在linux配置的docker代理,但是容器使用自己的docker,导致一直下载不下来image,就会出现一推奇奇怪怪的报错问题,但是根本原因就是 minikube 容器里面的 docker 下载不下来 image,因为在国内。
所以我们需要进入容器,手动 pull 国内的 image, tag 成 minikube 所需要的,最后就正常启动
对国内开发者真的不友好,如果你的机器,没有全局FQ,会有千奇百怪的问题