
为了方便大家开发和体验Kubernetes,社区提供了可以在本地部署的开发环境 Minikube。由于网络访问原因,很多朋友无法直接使用minikube进行实验。在v1.24.0的官方 Minikube 中,已经合并了由阿里云团队支持的方案,可以帮助大家利用阿里云的服务来获取所需Docker镜像,二进制文件和配置,也可以完美支持 Minikube 丰富的 addon 组件!
注:
- 本文已更新到 Minikube v1.24.0/Kubernetes v1.22+
如需更新minikube,需要更新 minikube 安装包
minikube delete删除现有虚机,删除~/.minikube目录缓存的文件- 重新创建 minikube 环境
- Docker Desktop 也为Mac/Windows用户提供了Kubernetes开发环境的支持 https://yq.aliyun.com/articles/672675 ,大家也可以试用
配置
先决条件
安装 kubectl
Minikube在不同操作系统上支持不同的驱动
macOS
- Docker 缺省驱动
- xhyve driver , VirtualBox 或 VMware Fusion
Linux
- VirtualBox 或 KVM2
- Docker 缺省驱动
Windows
- VirtualBox 或 Hyper-V - 请参考下文
注:
- 由于minikube复用了docker-machine,在其软件包中已经支持了相应的VirtualBox, VMware Fusion驱动
- VT-x/AMD-v 虚拟化必须在 BIOS 中开启
- 在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式
安装Minikube
您可以参考 https://minikube.sigs.k8s.io/docs/start/ 安装配置
注:有问题和需求请到 Github 提 issue,并 @denverdino
启动
如下命令将自动使用阿里云服务来支持minikube的环境配置
minikube start --image-mirror-country='cn' minikube 提供了非常多的配置参数,
常用配置参数如下
--driver=***从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如您已经安装过Docker环境,minikube 将使用docker驱动--cpus=2: 为minikube虚拟机分配CPU核数--memory=2048mb: 为minikube虚拟机分配内存数--registry-mirror=***为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon 配置镜像加速,参考阿里云镜像服务--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本
比如, 创建 minikube 环境并且调整默认资源配置
minikube start --image-mirror-country='cn' --cpus=4 --memory=4096mb 更多配置参数请参考 minikube help start
打开Kubernetes控制台
minikube dashboard 
对于使用Hyper-V环境的用户,首先应该打开Hyper-V管理器创建一个外部虚拟交换机,


之后,我们可以用如下命令来创建基于Hyper-V的Kubernetes测试环境
.\minikube.exe start --image-mirror-country cn \ --registry-mirror=https://xxxxxx.mirror.aliyuncs.com \ --vm-driver="hyperv" \ --hyperv-virtual-switch="MinikubeSwitch" \ --memory=4096 注:需要管理员权限来创建Hyper-V虚拟机
使用Minikube
用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作。
Minikube 也提供了丰富的 Addon 组件
$ minikube addons list |-----------------------------|----------|--------------|-----------------------| | ADDON NAME | PROFILE | STATUS | MAINTAINER | |-----------------------------|----------|--------------|-----------------------| | ambassador | minikube | disabled | unknown (third-party) | | auto-pause | minikube | disabled | google | | csi-hostpath-driver | minikube | disabled | kubernetes | | dashboard | minikube | disabled | kubernetes | | default-storageclass | minikube | enabled ✅ | kubernetes | | efk | minikube | disabled | unknown (third-party) | | freshpod | minikube | disabled | google | | gcp-auth | minikube | disabled | google | | gvisor | minikube | disabled | google | | helm-tiller | minikube | disabled | unknown (third-party) | | ingress | minikube | disabled | unknown (third-party) | | ingress-dns | minikube | disabled | unknown (third-party) | | istio | minikube | disabled | unknown (third-party) | | istio-provisioner | minikube | disabled | unknown (third-party) | | kubevirt | minikube | disabled | unknown (third-party) | | logviewer | minikube | disabled | google | | metallb | minikube | disabled | unknown (third-party) | | metrics-server | minikube | disabled | kubernetes | | nvidia-driver-installer | minikube | disabled | google | | nvidia-gpu-device-plugin | minikube | disabled | unknown (third-party) | | olm | minikube | disabled | unknown (third-party) | | pod-security-policy | minikube | disabled | unknown (third-party) | | portainer | minikube | disabled | portainer.io | | registry | minikube | disabled | google | | registry-aliases | minikube | disabled | unknown (third-party) | | registry-creds | minikube | disabled | unknown (third-party) | | storage-provisioner | minikube | enabled ✅ | kubernetes | | storage-provisioner-gluster | minikube | disabled | unknown (third-party) | | volumesnapshots | minikube | disabled | kubernetes | |-----------------------------|----------|--------------|-----------------------| 通过 minikube 命令行,可以轻松开启 Addon 组件,所有组件镜像也会正确解析到阿里云的镜像仓库URL
$ minikube addons enable ingress ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.0.4 ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1 ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1 🔎 Verifying ingress addon... 🌟 启动 'ingress' 插件 $ minikube addons enable ingress-dns ▪ Using image registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns:0.0.2 🌟 启动 'ingress-dns' 插件 大家可以参考 https://minikube.sigs.k8s.io/docs/handbook/addons/ingress-dns/ 来学习使用 Ingress。
更多关于 Minikube 的使用信息可以参考 https://minikube.sigs.k8s.io/
好了,开始探索Kubernetes的世界吧!:-)