Minikube 是本地开发和测试 Kubernetes 应用的理想工具,支持多平台、多驱动和丰富插件,极大简化了集群搭建与管理流程。本文系统梳理 Minikube 的架构、安装、配置、常用命令及最佳实践,助你高效掌握本地 K8s 环境。
Minikube 是一个开源工具,支持在 macOS、Linux 和 Windows 上本地运行单节点 Kubernetes 集群。它让开发者无需访问完整集群即可便捷测试和开发 Kubernetes 应用。
Minikube 的主要目标包括:
最新版本:v1.37.0(2025 年 9 月 9 日发布)
更新日志
在安装 Minikube 前,请确保系统满足以下要求:
Minikube 采用分层架构,通过抽象不同组件,为多平台和多虚拟化技术提供一致体验。
```mermaid “Minikube 高级架构” graph TD User([“用户”]) CLI[“minikube CLI”] Commands[“命令处理器”] Lifecycle[“集群生命周期管理器”] Config[“配置系统”] Driver[“驱动接口”] Bootstrap[“K8s 引导器”] VM[“VM 或容器主机”] Runtime[“容器运行时”] Images[“镜像管理器”] Network[“网络插件”] K8sCore[“K8s 核心组件”] Addons[“插件系统”] Services[“服务访问”]
User --> CLI
CLI --> Commands
Commands --> Lifecycle
Lifecycle --> Config
Lifecycle --> Driver
Lifecycle --> Bootstrap
Driver --> VM
Bootstrap --> Runtime
Bootstrap --> Images
Bootstrap --> Network
Runtime --> K8sCore
Bootstrap --> K8sCore
K8sCore --> Addons
K8sCore --> Services ```
{width=1920 height=2041}
Minikube 通过驱动接口抽象机器配置,支持多种虚拟化和容器化技术。
```mermaid “Minikube 驱动系统” graph TD subgraph “驱动接口” DriverMgr[“驱动管理器”] DriverAPI[“驱动 API”] end
subgraph "VM 驱动"
VBox["VirtualBox 驱动"]
KVM["KVM 驱动"]
HyperKit["HyperKit 驱动"]
HyperV["Hyper-V 驱动"]
end
subgraph "容器驱动"
KIC["Kubernetes in Container (KIC)"]
Docker["Docker 驱动"]
Podman["Podman 驱动"]
end
subgraph "其他驱动"
None["None 驱动"]
SSH["SSH 驱动"]
end
DriverMgr --> DriverAPI
DriverAPI --> VBox
DriverAPI --> KVM
DriverAPI --> HyperKit
DriverAPI --> HyperV
DriverAPI --> KIC
KIC --> Docker
KIC --> Podman
DriverAPI --> None
DriverAPI --> SSH ```
{width=2093 height=810}
KIC(Kubernetes in Container)通过专用基础镜像在容器中运行 Kubernetes。
Minikube 支持多种容器运行时,便于模拟生产环境。
```mermaid “Minikube 容器运行时支持” graph TD subgraph “容器运行时接口” RuntimeMgr[“运行时管理器”] RuntimeAPI[“运行时 API”] end
subgraph "支持的运行时"
Docker["Docker - v28.0.4"]
Containerd["containerd - v1.7.23"]
CRIO["CRI-O"]
end
RuntimeMgr --> RuntimeAPI
RuntimeAPI --> Docker
RuntimeAPI --> Containerd
RuntimeAPI --> CRIO ```
{width=1920 height=1429}
Minikube 通过插件系统扩展功能,便于集群内部署常用组件。
```mermaid “Minikube 插件系统” graph TD subgraph “插件管理” AddonCmd[“插件命令”] AddonMgr[“插件管理器”] Registry[“插件注册表”] end
subgraph "插件部署"
Templates["插件模板"]
Manifests["K8s 清单"]
RBAC["RBAC 资源"]
end
AddonCmd --> AddonMgr
AddonMgr --> Registry
Registry --> Templates
Templates --> Manifests
Manifests --> RBAC ```
{width=1920 height=7752}
插件可包含 RBAC 资源,保障集群安全。
下表总结了 Minikube 的核心特性及相关命令标志:
| 特性 | 描述 | 相关标志 |
|---|---|---|
| 多集群支持 | 运行多个独立集群 | -p, --profile |
| 多 Kubernetes 版本 | 运行特定 Kubernetes 版本 | --kubernetes-version |
| 容器运行时选择 | 支持 Docker、containerd、CRI-O | --container-runtime |
| 资源自定义 | 配置 CPU、内存和磁盘资源 | --cpus, --memory, --disk-size |
| 自定义镜像仓库 | 支持替代注册表 | --image-repository |
| GPU 直通 | NVIDIA/AMD GPU 支持 | --gpus |
| 仅下载模式 | 预加载镜像不启动集群 | --download-only |
| 文件系统挂载 | 本地目录挂载到集群 | --mount |
| CNI 网络 | 支持多种网络实现 | --cni |
KIC 驱动使用预装依赖的基础镜像,便于快速启动。
```mermaid “KIC 基础镜像与依赖” graph TD subgraph “KIC 基础镜像” BaseImage[“kicbase 镜像”] MainRepo[“gcr.io/k8s-minikube/kicbase-builds”] FallbackRepo[“docker.io/kicbase/build”] end
subgraph "组件"
Docker["Docker v28.0.4"]
Containerd["containerd v1.7.23"]
K8sTools["Kubernetes 工具"]
CNIPlugins["CNI 插件"]
end
BaseImage --> MainRepo
BaseImage --> FallbackRepo
BaseImage --> Docker
BaseImage --> Containerd
BaseImage --> K8sTools
BaseImage --> CNIPlugins ```
{width=1920 height=441}
brew install minikube
minikube version
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube
minikube version
brew install kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
kubectl version --client
minikube start
minikube start --memory=4096 --cpus=2
推荐使用 HyperKit 或 Krunkit 驱动:
brew install hyperkit
minikube start --driver=hyperkit
minikube start --driver=krunkit
如已安装 Docker Desktop:
minikube start --driver=docker
启动成功后,minikube 会自动配置 kubectl 上下文,可直接使用 kubectl 操作集群。
minikube status
kubectl get nodes
kubectl cluster-info
minikube start
minikube stop
minikube start
minikube delete
minikube pause
minikube unpause
minikube status
minikube ip
minikube ssh
minikube kubectl version
minikube addons list
minikube addons enable dashboard
minikube addons disable dashboard
minikube dashboard
minikube service <service-name> --url
minikube service <service-name>
minikube delete --all --purge
rm -rf ~/.minikube
--gpus 启用 GPUMinikube 为本地 Kubernetes 开发和测试提供了极致便捷的体验。通过多驱动、多运行时和丰富插件支持,开发者可快速搭建与生产环境高度一致的集群,灵活模拟各种场景。掌握 Minikube 的架构、安装、配置和常用命令,将极大提升本地 K8s 开发效率。