1、什么是 Minikube
Minikube 是一个开源工具,旨在为开发者提供一种便捷的方式在本地环境中搭建单节点的 Kubernetes 集群。它主要用于开发、测试和学习 Kubernetes 应用程序,无需依赖大型的硬件资源或复杂的多节点集群配置。minikube 使用轻量级虚拟化技术(如 VirtualBox、Docker、KVM、Hyper-V 等)在用户的本地机器上启动一个独立的虚拟机,然后在这个虚拟机内部署一个完整的 Kubernetes 控制平面以及一个节点。主要特点包括:
- 轻量化:只需少量本地资源即可运行,使得开发者可以在个人笔记本电脑上快速启动一个功能完备的Kubernetes集群。
- 跨平台:支持多种操作系统(如 Windows、macOS、Linux)和虚拟化技术,可根据用户环境灵活选择。
- 简单易用:通过命令行界面提供易于理解的操作指令,如启动、停止、删除集群,以及附加功能如挂载宿主机目录、设置内存限制等。
- 实验特性支持:允许启用Kubernetes的实验性功能,方便开发者提前试用新特性或特定版本。
使用 Minikube,开发者可以:
- 快速迭代和调试 Kubernetes YAML 文件。
- 测试 Kubernetes 应用部署、服务发现、配置更新等基本操作。
- 在接近生产环境的条件下验证 Helm charts 或 Operators。
- 学习和掌握 Kubernetes 基础概念和操作流程。
2、安装 Minikube
这里为Mac m1系统,其他系统环境可参考Minikube官方文档:
#下载二进制包
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64#安装
sudo install minikube-darwin-arm64 /usr/local/bin/minikube#启动集群
minikube start
启动成功如下:
#下载kubectl(也可单独安装 参考:https://kubernetes.io/zh-cn/docs/tasks/tools/)
minikube kubectl -- get po -A#设置命令别名 为了方便
alias kubectl="minikube kubectl --"#与集群交互
kubectl get po -A#启动Kubernetes仪表盘
minikube dashboard
仪表盘如下:
3、部署应用程序
- 创建示例部署并将其公开在端口 8082 上:
kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0kubectl expose deployment hello-minikube --type=NodePort --port=8082
- 查看部署的服务:
kubectl get services hello-minikube
4、管理集群
#暂停Kubernetes而不影响已部署的应用程序
minikube pause#取消暂停的实例
minikube unpause#停止集群
minikube stop#更改默认内存限制(需要重新启动)
minikube config set memory 9001#浏览易于安装的 Kubernetes 服务目录
minikube addons list#创建运行旧 Kubernetes 版本的第二个集群
minikube start -p aged --kubernetes-version=v1.16.1#删除所有 minikube 集群
minikube delete --all