用 Minikube 或 Kind 在本地跑起 Kubernetes

概述

事实上,在本地电脑上,几分钟就能启动一个完整的 K8s 集群

通过以下两种最流行的本地工具:

  • Minikube:老牌经典,功能全
  • **Kind(Kubernetes in Docker)**轻量现代,启动快

无论你是 Mac、Windows 还是 Linux ,都能搞定

为什么需要本地 K8s

Kubernetes(K8s)通常运行在云服务器或数据中心,但学习它不需要昂贵的资源。

本地 K8s 环境让你:

  • 安全地实验 Deployment、Service、ConfigMap
  • 调试 YAML 配置文件
  • 模拟多 Pod 协作
  • 为后续学习 Helm、Ingress、Operator 打基础

Minikube vs Kind

特性 Minikube Kind
原理 启动一个虚拟机(VM)或容器运行单节点 K8s 直接用 Docker 容器模拟 K8s 节点
启动速度 中等(10~30 秒) 极快(5~15 秒)
资源占用 较高(需分配 CPU/内存给 VM) 较低(纯容器)
功能完整性 高(支持 Ingress、Dashboard 等插件) 中(核心功能完整,插件较少)
适合人群 想体验完整 K8s 功能的新手 熟悉 Docker、追求效率的开发者

建议

  • 如果你是 Mac/Windows 新手 → 选 Minikube
  • 如果你已熟悉 Docker ,且用Linux/Mac → 选 Kind

最佳实践

方案一:用 Minikube 搭建本地 K8s

Step 1:安装前提

确保已安装:

  • Docker(推荐)或 VirtualBox/Hyper-V
  • kubectl(K8s 命令行工具)

** 安装 kubectl(任选其一)**

bash 复制代码
# macOS (Homebrew)
brew install kubectl

# Windows (Chocolatey)
choco install kubernetes-cli

# Linux
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

验证:

bash 复制代码
kubectl version --client

Step 2:安装 Minikube

bash 复制代码
# macOS
brew install minikube

# Windows (PowerShell as Admin)
choco install minikube

# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

Step 3:启动集群(使用 Docker 驱动)

bash 复制代码
minikube start --driver=docker

首次启动会下载镜像,稍等 1~2 分钟,看到 Done! 表示成功!

Step 4:验证集群

bash 复制代码
# 查看节点
kubectl get nodes

# 查看所有 Pod(包括系统组件)
kubectl get pods -A

你应该看到一个 minikube 节点处于 Ready 状态。

Step 5:访问 Dashboard(可选)

bash 复制代码
minikube dashboard

浏览器会自动打开 K8s 可视化界面!

Step 6:停止/删除集群

bash 复制代码
minikube stop    # 暂停(可 resume)
minikube delete  # 彻底删除

方案二:用 Kind 搭建本地 K8s

Step 1:安装前提

必须已安装:

  • Docker(Kind 完全基于容器)
  • kubectl(同上)

Step 2:安装 Kind

bash 复制代码
# macOS (Homebrew)
brew install kind

# Windows (via Chocolatey or download binary)
# 下载地址: https://kind.sigs.k8s.io/dl/v0.20.0/kind-windows-amd64

# Linux
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

验证:

bash 复制代码
kind version

Step 3:创建一个集群

最简单方式(单节点):

bash 复制代码
kind create cluster --name my-cluster

几秒钟就完成!你会看到:

复制代码
Creating cluster "my-cluster" ...
 ✓ Ensuring node image (kindest/node:v1.29.0) 🖼
 ✓ Preparing nodes 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️

Step 4:配置 kubectl 使用 Kind 集群

Kind 会自动修改 ~/.kube/config,但你可以确认:

bash 复制代码
kubectl config current-context
# 应输出:kind-my-cluster

验证集群:

bash 复制代码
kubectl get nodes

输出类似:

复制代码
NAME                    STATUS   ROLES           AGE   VERSION
my-cluster-control-plane   Ready    control-plane   1m    v1.29.0

Step 5:(进阶)创建多节点集群

创建 kind-config.yaml

yaml 复制代码
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

启动:

bash 复制代码
kind create cluster --name multi-node --config kind-config.yaml

现在你有了 1 个控制节点 + 2 个工作节点!

Step 6:删除集群

bash 复制代码
kind delete cluster --name my-cluster

常见问题

Q1:Minikube 启动卡在 "Starting control plane"?

  • 检查 Docker 是否运行
  • 尝试换驱动:minikube start --driver=docker
  • 国内用户可加镜像加速:--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

Q2:Kind 能访问外网吗?

  • 可以!Pod 默认通过 Docker 网络访问互联网。

Q3:数据会持久化吗?

  • 默认不会。重启集群后所有数据丢失。
  • 如需持久化,需配置 PersistentVolume(进阶内容)。

Q4:能同时运行 Minikube 和 Kind 吗?

  • 可以,但 kubectl 同一时间只能连一个集群。
  • kubectl config use-context 切换。

总结

项目 Minikube Kind
启动命令 minikube start kind create cluster
底层技术 VM 或容器 纯 Docker 容器
启动速度
资源占用 高(默认 2GB 内存) 低(按需)
适合场景 学习完整 K8s 功能 CI/CD、快速测试、开发者日常
插件支持 丰富(Ingress、Metrics Server 等) 有限(需手动配置)

想全面体验 K8s?→ Minikube

想快速迭代、写 YAML 测试?→ Kind

相关推荐
噎住佩奇2 小时前
单节点K8s集群中安装StorageClass(SC)
云原生·容器·kubernetes
陈陈CHENCHEN2 小时前
【Kubernetes】镜像拉取密钥 - Docker Registry
docker·kubernetes
Bits to Atoms2 小时前
宇树机器人二次开发环境配置 -- docker创建
运维·docker·容器
不想画图2 小时前
Kubernetes(八)——PV和PVC
云原生·容器·kubernetes
Serverless社区3 小时前
探秘 AgentRun|基于 Serverless 的 AI Agent 沙箱工程化之路
运维·阿里云·云原生·serverless·函数计算
廋到被风吹走3 小时前
缓存一致性四大模式深度解析:从理论到架构实战
缓存·架构
阿里云云原生3 小时前
Nacos 生产级安全实践:精细化鉴权、灰度平滑过渡与全量操作审计
安全·阿里云·云原生·nacos
X54先生(人文科技)4 小时前
碳硅协同对位法:从对抗博弈到共生协奏的元协议
人工智能·架构·零知识证明
u0104058364 小时前
Java微服务架构:设计模式与实践
java·微服务·架构