在linux虚拟机上搭建minikube环境

      在linux虚拟机上搭建minikube环境无评论

一直想在本地创建minikube的环境,最近终于有时间专注做这个事情了。为了帮助项目小伙伴搭建微服务的部署环境,如果是macos用户,还好安装docker,之后再安装minikube还是挺方便的,当然得有VPN或者代理才行,你懂的。
如果是windows用户,本来docker支持的就不好,建议使用linux虚拟机或者服务器做开发环境。但是对于没经费的伙伴来说,linux vm还是比较合适的。闲话少说,步入正题。

首先说下环境要求:
1. virtualbox CentOS一台(>=2cpu, 30G),如果支持虚拟化硬盘最好
2. 网络能访问google最好

步骤如下:
1. yum install docker from https://docs.docker.com/install/linux/docker-ce/centos/
2. 如果你的vm是支持硬盘虚拟化的,可以安装kvm2 driver,否则可以跳过这一步,我在这里跳坑了,之前安装了驱动结果到安装minikube的时候提示错误。
[su_label]curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \
chmod +x docker-machine-driver-kvm2 \
&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \
&& rm docker-machine-driver-kvm2[/su_label]

3.为你要即将下载的两个文件创建一个目录(installer),两个文件分别是:minikubekubectl
4.cd intaller 开始安装
* curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 ** 获取minikube 安装文件
* chmod +x minikube
* mv minikube /usr/local/bin 移动到bin目录
* **curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
获取kubectl
* chmod +x kubectl
* mv kubectl /usr/local/bin

  1. 启动minikube
    • minikube start –vm-driver=(***) 这个driver如果上边没有安装,则选择none,表示使用本机作为安装。
    • 不出意外的话,等一会儿就可以启动完成
    • minikube status 查看状态,如果是正常是这样的
      • host: Running
        kubelet: Running
        apiserver: Running
        kubectl: Correctly Configured: pointing to minikube-vm at 10.0.2.15
    • 如果有错误,应该是stopped的。
  2. 启动UI界面,minikube dashboard –url 会在终端输出一个地址,可以在浏览器上打开,但是默认这个地址是只能在本机打开,需要通过kubectl proxy命令把请求跟转发出来。

下边介绍下我遇到的一些问题:

  1. minikube start –vm-driver=none,说着容易,启动了多次,总是报错,问题就是出在这个driver这里。
    原因是 docker info: Cgroup Driver: systemd 使用的driver是systemd, 但是kubelet使用的driver,–cgroup-driver=cgroupfs, 两个不一致,导致kubectl无法启动,
    错误:failed to create kubelet: misconfiguration: kubelet cgroup driver: “cgroupfs” is different from docker cgroup driver: “systemd”
  2. 如果解决的,其他人说有两种,一改docker的配置,一改kubelet的配置,本人试了改docker的daemon文件,发现,无法启动docker, 无奈改kubelet的/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,修改driver跟docker的一致,改完怎么办呢
  3. 如果重新启动minikube可以吗,答案是否定的,因为重新启动,这个10-kubeadm.conf会重新生成,正确姿势应该是这样的:
  4. kubeadm init就可以了
  5. 这时查看minikube status就是running的。

不过还有一个疑问:如何remote访问dashboard UI呢?有人是通过ssh -R访问,我是通过nginx转发,但是只能部分访问接口,UI还是有点问题,欢迎留言讨论啊!

沟通交流合作请加微信!