
为了方便大家开发和体验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
您可以参考 [https://kubernetes.io/zh/docs/tasks/tools/](https://kubernetes.io/zh/docs/tasks/tools/) 安装配置!!!
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方式
- 由于
- VirtualBox 或 Hyper-V - 请参考下文
二、安装Minikube
您可以参考 [https://minikube.sigs.k8s.io/docs/start/](https://minikube.sigs.k8s.io/docs/start/) 安装配置!!!
- ①:如下命令将自动使用阿里云服务来支持
minikube的环境配置
```bash [greamrod@localhost ~]$ minikube start —image-mirror-country=cnminikube start --image-mirror-country=cn
- Centos 7.9.2009 上的 minikube v1.24.0
- 自动选择 docker 驱动
- 正在使用镜像存储库 registry.cn-hangzhou.aliyuncs.com/google_containers
- Starting control plane node minikube in cluster minikube
- Pulling base image …
registry.cn-hangzhou.aliyun…: 355.78 MiB / 355.78 MiB 100.00% 5.31 MiB
- Creating docker container (CPUs=2, Memory=2200MB) …
kubectl.sha256: 64 B / 64 B [—————————————] 100.00% ? p/s 0s kubelet.sha256: 64 B / 64 B [—————————————] 100.00% ? p/s 0s kubelet: 115.57 MiB / 115.57 MiB [——————-] 100.00% 5.92 MiB p/s 20s
- Generating certificates and keys …
- Booting up control plane …
- Configuring RBAC rules …
- Verifying Kubernetes components…
- Using image registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5
- Enabled addons: storage-provisioner, default-storageclass
- Done! kubectl is now configured to use “minikube” cluster and “default” namespace by default
[greamrod@localhost ~]$ kubectl get po -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-7d89d9b6b8-h5b97 0/1 Running 0 11s kube-system etcd-minikube 1/1 Running 0 24s kube-system kube-apiserver-minikube 1/1 Running 0 24s kube-system kube-controller-manager-minikube 1/1 Running 0 23s kube-system kube-proxy-2pqqx 1/1 Running 0 12s kube-system kube-scheduler-minikube 1/1 Running 0 24s kube-system storage-provisioner 1/1 Running 0 23s
> `minikube` 提供了非常多的配置参数,常用配置参数如下:> - `--driver=***` 从`1.5.0`版本开始,`Minikube`缺省使用系统优选的驱动来创建`Kubernetes`本地环境,比如您已经安装过Docker环境,`minikube` 将使用 `docker` 驱动> - `--cpus=2`: 为`minikube`虚拟机分配`CPU`核数> - `--memory=2048mb`: 为`minikube`虚拟机分配内存数> - `--registry-mirror=***` : 为了提升拉取`Docker Hub`镜像的稳定性,可以为 `Docker daemon` 配置镜像加速,参考[阿里云镜像服务](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)> - `--kubernetes-version=***`: `minikube` 虚拟机将使用的 `kubernetes` 版本- ②: 创建 `minikube` 环境并且调整默认资源配置```bashminikube start --driver=docker \--image-mirror-country=cn \--image-mirror-country='cn'\--cpus=4 --memory=4096mb \--iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.24.0.iso \--registry-mirror=https://f69s1xsk.mirror.aliyuncs.com
三、使用Minikube
用户使用Minikube CLI管理虚拟机上的Kubernetes环境,比如:启动,停止,删除,获取状态等。一旦Minikube虚拟机启动,用户就可以使用熟悉的Kubectl CLI在Kubernetes集群上执行操作。
①:
Minikube也提供了丰富的Addon组件:minikube addons list
[greamrod@localhost ~]$ 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组件,所有组件镜像也会正确解析到阿里云的镜像仓库URLminikube addons enable ingressminikube addons enable ingress-dns
```bash [greamrod@localhost ~]$ 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’ 插件
[greamrod@localhost ~]$ 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的世界吧!!!
