如何在Mac&Linux&Windows上安装Minikube

如何在Mac&Linux&Windows上安装Minikube
Minikube是一个快速搭建单节点Kubenetes集群的,Minikube是由Kubernetes社区维护的单机版Kubernetes集群工具,支持MacOS, Linux和Windows等多种操作系统,使用最新的官方stable版本,并支持Kubernetes的大部分功能,从基础的容器编排管理,到高级特性如负载均衡、Ingress,权限控制等。非常适合作为Kubernetes入门,或开发测试环境使用。本文将介绍如何在多种系统上安装Minikube。方法如下:

系统是否支持虚拟化

计算机必须在BIOS中启用VT-x 或AMD-v虚拟化功能。我们可以通过执行如下命令检查系统是否支持虚拟化,命令如下:
Mac

sysctl -a | grep -E --color 'machdep.cpu.features|VMX'

如果您在输出中看到VMX(彩色标记),则说明Mac系统已支持虚拟化功能。

Linux

grep -E --color 'vmx|svm' /proc/cpuinfo

检查Linux是否支持虚拟化,执行如上命令后如果有高亮显示的内容则说明环境符合要求。

Windows

systeminfo

如果看到以下输出,则说明Windows支持虚拟化。

Hyper-V Requirements:     VM Monitor Mode Extensions: Yes
                          Virtualization Enabled In Firmware: Yes
                          Second Level Address Translation: Yes
                          Data Execution Prevention Available: Yes

如果看到以下输出,则说明您的系统已经安装了系统管理程序,可以跳过下一步。

Hyper-V Requirements:     A hypervisor has been detected. Features required for Hyper-V will not be displayed.

1. 安装Minikube可执行程序

Mac

~ » brew install minikube

我们还可能会遇到如下错误提示:

Error: The following directories are not writable by your user:
/usr/local/share/man/man7

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/share/man/man7

And make sure that your user has write permission.
  chmod u+w /usr/local/share/man/man7

或者
直接通过下载Minikube二进制文件进行安装:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \
  && chmod +x minikube

下载完后将minikube拷贝或者移动到系统可执行文件夹中

sudo mv minikube /usr/local/bin

Linux

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Windows
https://storage.googleapis.com/minikube/releases/latest/minikube-windows-amd64.exe 下载重命名成minikube.exe,然后把这个文件的目录路径添加到系统环境变量PATH里。

安装完以后,我们可以通过minikube version 查看minikube的版本

~ » minikube version
minikube version: v1.6.2
commit: 54f28ac5d3a815d1196cd5d57d707439ee4bb392

2.安装kubectl

参考官方文档: https://kubernetes.io/docs/tasks/tools/install-kubectl/

Mac

~ » curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
~ » chmod +x ./kubectl
~ » sudo mv ./kubectl /usr/local/bin/kubectl

Linux

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl

Windows
下载exe安装文件: https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/windows/amd64/kubectl.exe
然后添加到系统的PATH环境变量中。安装完以后可以通过执行kubectl version检查是否安装成功:

~ » kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"darwin/amd64"}
The connection to the server localhost:8080 was refused - did you specify the right host or port?

从输出结果我们可以看到它有一个错误提示The connection to the server localhost:8080 was refused - did you specify the right host or port?,这个可以暂时忽略,由于我们还没有创建Kubernetes节点,连不上api server导致。

3.安装虚拟机

因为Minikube创建Kubernetes虚机是通过创建虚拟机来实现的(VirtualBox 、 VMware Fusion、 HyperKit、 KVM、Hyper-V等),所以在使用之前,要在我们的系统中安装虚拟机,我这里安装的是Virtualbox: https://www.virtualbox.org/wiki/Downloads, 根据自己的操作系统下载安装即可。

4. 确认环境是否安装成功

为了要确认hypervisor和Minikube均已成功安装,我们可以通过在本地创建Kubernetes集群环境进行验证。通过命令 minikube start --vm-driver=<driver_name> 去创建,这里的<driver_name>如果不指定,默认会使用hyperkit虚机驱动,最好指定自己已安装的虚机驱动(驱动类型可以为:virtualbox,vmwarefusion,kvm2,hyperkit,hyperv,vmware,none),如果不指定默认使用hyperkit。如下为我使用virtualbox创建环境:

~ » minikube start --vm-driver=virtualbox

😄  minikube v1.6.2 on Darwin 10.15.2
✨  Selecting 'virtualbox' driver from user configuration (alternates: [hyperkit vmwarefusion])
💿  Downloading VM boot image ...
    > minikube-v1.6.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
    > minikube-v1.6.0.iso: 939.00 KiB / 150.93 MiB  0.61% 129.97 KiB p/s ETA 19    
    > minikube-v1.6.0.iso: 13.60 MiB / 150.93 MiB  9.01% 140.91 KiB p/s ETA 16m^R
    > minikube-v1.6.0.iso: 13.60 MiB / 150.93 MiB  9.01% 133.06 KiB p/s ETA 17m^R
    > minikube-v1.6.0.iso: 14.15 MiB / 150.93 MiB  9.38% 126.56 KiB p/s ETA 18m^R
    > minikube-v1.6.0.iso: 14.18 MiB / 150.93 MiB  9.40% 122.73 KiB p/s ETA 19m^R
    > minikube-v1.6.0.iso: 16.38 MiB / 150.93 MiB  10.85% 140.77 KiB p/s ETA 16ls
    > minikube-v1.6.0.iso: 150.93 MiB / 150.93 MiB  100.00% 152.14 KiB p/s 16m5
🔥  Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
      ..........

注意:Minikube还支持--vm-driver = none选项,该选项在主机而不是VM中运行Kubernetes组件。 使用none选项需要我们的主机已经安装了Docker并且是Linux环境,但不需要hypervisor。 当使用none驱动程序时,推荐使用apt方式安装Docker。 快照方式安装docker会使得minikube不起作用。

创建过程中因为要下载很多较大的程序,比如,driver,minikube启动镜像等,这个过程有点儿漫长。待minikube启动完成后,我们可以通过执行minikube status命令检查集群状态:

minikube status

如果集群运行正常,我们将看到类似如下的输出结果:

host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

the end

热门文章