很多人学习 Kubernetes 时,会被「多节点集群」劝退:
👉 没服务器、没云资源、成本高
其实只要一台普通电脑,借助 Kind(Kubernetes in Docker) ,就可以轻松模拟一个 多节点 Kubernetes 集群,非常适合:
- 学习 K8s 调度
- 测试多副本 / 多节点部署
- CI / 本地实验环境
本文将从 0 到 1 ,带你在 一台电脑 上完成一个 3 节点 Kubernetes 集群 的搭建和测试。
一、什么是 Kind?
Kind(Kubernetes in Docker) 是 Kubernetes 官方 SIG 推出的工具:
- Kubernetes 节点运行在 Docker 容器中
- 启动速度快、资源占用低
- 非常适合本地测试多节点集群
对比:
| 工具 | 特点 |
|---|---|
| Minikube | 单节点为主,简单 |
| Kind | 支持多节点,贴近真实集群 |
二、环境准备
1️⃣ 安装 Docker
如果你已经安装 Docker,可直接跳过。
bash
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
验证 Docker 是否正常运行:
bash
docker ps
2️⃣ 安装 kubectl
bash
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
验证:
bash
kubectl version --client
3️⃣ 安装 Kind
bash
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/
验证:
bash
kind --version
三、创建一个多节点 Kubernetes 集群
1️⃣ 编写 Kind 集群配置文件
创建 kind-config.yaml:
yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
说明:
- 1 个 控制平面节点
- 2 个 工作节点
- 总共 3 节点集群
2️⃣ 创建集群
bash
kind create cluster --name demo --config kind-config.yaml
3️⃣ 查看节点状态
bash
kubectl get nodes
示例输出:
text
NAME STATUS ROLES AGE VERSION
demo-control-plane Ready control-plane 1m v1.31.0
demo-worker Ready <none> 1m v1.31.0
demo-worker2 Ready <none> 1m v1.31.0
🎉 多节点 Kubernetes 集群已成功运行!
四、部署测试应用(Nginx)
1️⃣ 创建 Deployment
bash
kubectl create deployment nginx --image=nginx
2️⃣ 暴露服务(NodePort)
bash
kubectl expose deployment nginx --port=80 --type=NodePort
3️⃣ 查看 Service
bash
kubectl get svc nginx
五、访问 Nginx 服务
Kind 没有 Minikube 的 service 命令,因此使用 端口转发:
bash
kubectl port-forward svc/nginx 8080:80
浏览器访问:
如果看到:
Welcome to nginx!
说明服务已经成功跑在 Kubernetes 集群中 🎉
六、进入 Pod 容器内部(调试必备)
先查看 Pod 名称:
bash
kubectl get pods
然后进入容器:
bash
kubectl exec -it nginx-76bb4bdf9f-nt52n -- /bin/bash

你现在已经进入了 Kubernetes Pod 内部的 Linux Shell,可以:
- 查看进程
- 修改配置
- 调试应用
七、常用 Kind / kubectl 命令汇总
查看集群信息
bash
kubectl cluster-info
查看 Pod 分布在哪个节点
bash
kubectl get pods -o wide
删除集群
bash
kind delete cluster --name demo
八、总结
✔ 一台电脑
✔ 一个 Docker
✔ 一个 Kind
➡ 就能拥有一个 多节点 Kubernetes 集群
适合人群
- Kubernetes 初学者
- DevOps / SRE
- 学习调度、滚动升级、HPA
- 本地 CI / 实验环境