使用minikube

本安装环境是在mac。

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

开启虚拟化

首先确定本机开启了虚拟化,在终端上使用如下命令:

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

在输出中看到VMX就OK了,如果没有,就需要开启虚拟化了。

安装minikube

安装kubectl

kubectl是用来操作kubernetes的命令行工具。

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
# 查看版本号
kubectl version

为了更方便的使用命令行工具,可以安装下面这个插件:

brew install c-bata/kube-prompt/kube-prompt

然后通过kube-prompt进入命令行即可,它具有自动补全等功能。

安装虚拟化工具

可选的有三种:

  • HyperKit

  • VirtualBox

  • VMware Fusion

这里我使用的是VirtualBox

安装Minikube

Minikube是Kubernetes提供的小型的集群部署器,它可以快速的在Hypervisor上建立一个k8s集群。

由于GFW的问题,我们这里选择使用阿里云提供的修改版的minikube:

curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.5.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

验证:

minikube version

得到以下结果:

minikube版本信息

部署kubernetes集群

由于GFW的问题,所以使用下面的语句启动集群(以后每次都要用这句话来启动集群):

minikube start --image-mirror-country cn \
    --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.5.0.iso \
    --registry-mirror=https://d8ui43mx.mirror.aliyuncs.com
  • --image-mirror-country cn 将缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作为安装Kubernetes的容器镜像仓库;

  • --iso-url=*** 利用阿里云的镜像地址下载minikube虚拟机相应的.iso文件;

  • --cpus=2: 为minikube虚拟机分配CPU核数

  • --memory=2000mb: 为minikube虚拟机分配内存数

  • --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

  • --registry-mirror指定镜像加速器

部署结果

注意在部署完成后,它还会有一些其他的容器镜像需要翻墙下载,比如nginx相关的,这些可以使用minikube ssh进入虚拟机内部,然后参考docker pull挂代理,手动下载镜像,重启该集群即可解决。

平时需要停止集群的话,使用下面的命令停止即可:

minikube stop

若想使用 calico 网络插件,可以使用如下命令启动:

minikube start --registry-mirror=https://d8ui43mx.mirror.aliyuncs.com --network-plugin=cni --host-only-cidr 172.17.17.1/24
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

删除kubernetes集群

minikube delete

Last updated

Was this helpful?