在Windows10下安装Minikube

花了两天时间,终于将Minikube部署成功了,心情久久不能平静,于是写篇文章纪念一下,顺便提醒后来者,避免踩坑~

背景介绍

Minikube是什么?

Minikube是一个能够在虚拟机中运行单节点Kubernetes集群的工具,它使得开发者可以在本地环境中进行开发和调试Kubernetes。

Kubernetes又是什么?

Kubernetes是一个用来自动部署、伸缩、和管理容器化应用的开源系统。

容器又是什么?

容器指的是运用虚拟化技术将不同应用和其所需的运行环境进行隔离的进程,其中Docker是最著名的开源容器软件。

怎么感觉看不懂~我是不是进错公众号点错文章了?

等等~先了解完它的强大之处再关闭文章不迟。

  • 我有几个项目使用的不同Node.js版本,开发调试需要进行切换很不方便。——容器的虚拟运行环境可以解决
  • 每次部署都要重新安装依赖,而且不同环境依赖安装后可能出现问题。——打包成镜像,无需再安装依赖,秒级启动。
  • 我想创建几个同样的进程做负载均衡/高可用。——用Kubernetes创建容器副本。
  • 我希望我的进程在生产环境中挂掉或者被误杀之后自动重新启动。——用Kubernetes的自愈功能操作容器。
  • 根据不同机器的资源使用情况来分配进程。——用Kubernetes来调度容器。

如果有兴趣还可以看看这篇浅显易懂的文章《你女儿也能看懂的插画版 Kubernetes 指南》http://www.codeceo.com/article/kubernetes-guide.html

安装步骤

1.启动CPU的虚拟化功能(Intel的VT-x或AMD的AMD-v)

VT-x开启民间教程:https://jingyan.baidu.com/article/fd8044faff36a45031137a3e.html

AMD-v开启民间教程:https://zhidao.baidu.com/question/1045505232562268339.html

只有开启了CPU的虚拟化功能才能创建虚拟机,只有使用虚拟机才能将应用容器化。
所以在安装之前请查一下当前CPU是否支持并开启虚拟化技术,如果不支持则无法安装,如果未开启可以参考以上两篇文章进入BIOS开启,操作相当简单,因为BIOS不好截屏这里就不上图了。
开启成功之后可以在任务管理器性能选项卡中看到虚拟化技术“已开启”,如下图

2.安装VirtualBox或者Hyper-V(Windows8以上的系统默认已安装)

Hyper-V创建虚拟机民间教程:http://win8.yesky.com/275/34411775_2.shtml

虚拟化技术开启之后我们通过创建虚拟机来使用它。可以用第三方的VirtualBox,也可以用Windows自带的Hyper-V。

为了保持系统的纯净,遵循尽量少安装软件的原则,我当然选择Hyper-V。

win + q快捷键调出Windows的搜索功能,输入hyper-v,点击搜索结果中的“Hyper-V 管理器”,创建虚拟网络交换机过程如下图所示。

特别注意,一定要选择“外部网络”和当前使用的网卡。

图片中我创建的交换机名称为“k8svswitch”。

3.安装kubectl

kubectl官方教程:https://kubernetes.io/docs/tasks/tools/install-kubectl/

这一步操作基本什么难度,因为kubectl是绿色单文件。最大的问题可能是Google无法访问导致下载失败。有梯子的可以翻qiang下载,翻不了的话可以看文末的下载地址。本文所提到的所有需要下载的内容我都已经上传到网盘。

下载完成之后将文件所在目录添加到环境变量,这样保证我们可以在命令行中直接执行kubectl

配置好之后重新打开一个命令行,输入

kubectl version

看到类似下面这些信息之后就证明安装完成了。

4.安装Minikube并启动

安装Minikube的流程和上一步安装kubectl基本一致,从Google网站下载可执行文件,然后改名为minikube.exe并添加路径到环境变量。

万事俱备,现在就可以启动虚拟机创建集群了~ 吗?

黎明前总是最黑暗的,最后这一步启动也是坑最多的地方。

如果安装官方的命令minikube start,可能会出现各种错误,然后网络搜索可能出现各种解决方法,经历过各种问题之后总结如下:

首先minikube start会默认使用VirtualBox,但是我们用的是Hyper-V,所以需要加参数指定:

minikube start --vm-driver=hyperv

还记得我们之前创建的虚拟网络交换机吗?这时候就需要用到它了。

minikube start --vm-driver=hyperv --hyperv-virtual-switch=k8svswitch

默认不显示错误信息,为了方便排查启动中的问题,我们还是开启日志输出。

minikube start --vm-driver=hyperv --hyperv-virtual-switch=k8svswitch --v=3 --alsologtostderr

默认需要2048Mb内存,如果不够我们需要--memory 1024指定一下更小的空间,当然我的机器10Gb的内存不可能不够,这个参数省略了~

如果你的网络已经翻qiang了,可以用管理员权限打开命令行,输入、回车开始启动了。

否则的话需要提前把需要的文件放入缓存目录。

找到当前用户下的缓存目录,C:\Users\xxx\.minikube\cache(如果没找到可以手动创建,也可以执行上面命令自动创建),

minikube-v0.20.0.iso放入iso目录下,localkube-v1.8.0放入localkube,操作之后应该有下面两个文件:

1
2
C:\Users\xxx\.minikube\cache\iso\minikube-v0.20.0.iso
C:\Users\xxx\.minikube\cache\localkube\localkube-v1.8.0

管理员模式打开命令行,执行上面那条minikube start ...开头的命令。

执行完成之后输入kubectl cluster-info dump,看到集群的大量详细信息表示安装成功~

如果按照以上步骤仍不成功,可以参考国外网友的一篇文章

《Run k8s minikube on Windows 10 with Hyper-V》https://gibmirfred.de/2017/02/run-k8s-minikube-on-windows-10-with-hyper-v/

附件地址

网盘下载地址:https://pan.baidu.com/s/1qY3cVfu
其中
minikube v0.20.0
kubectl v1.8.0


一部由众多技术专家推荐, 帮你成为具有全面能力和全局视野工程师的进阶利器—— 《了不起的JavaScript工程师》出版了! 点击下方链接即刻踏上进阶之路!


亚里士朱德 wechat
更多WEB技术分享请订阅微信公众号“WEB学习社”