一台电脑模拟多节点 Kubernetes 集群:Kind 实战教程(含 Nginx 测试)

很多人学习 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

浏览器访问:

👉 http://localhost:8080

如果看到:

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 / 实验环境
相关推荐
恋红尘44 分钟前
K8S 配置与调度-叩丁狼
云原生·容器·kubernetes
恋红尘2 小时前
K8S Pod 基础解析-分篇-叩丁狼
云原生·容器·kubernetes·pod
袁庭新2 小时前
M系列芯片Mac上通过Homebrew一键安装/卸载Nginx并上线项目全指南
运维·nginx·macos·袁庭新·袁庭新ai
丘桔2 小时前
k8s01:容器运行时之争
云原生·容器·kubernetes
Densen20143 小时前
发布blazor应用到Linux, 使用nginx作为WebSocket代理
linux·websocket·nginx
不是书本的小明3 小时前
Apache vs Nginx vs Tomcat 核心区别与优化
nginx·tomcat·apache
恋红尘4 小时前
K8S 服务发现-叩丁狼
linux·docker·kubernetes
一直都在5725 小时前
K8s详解
云原生·容器·kubernetes
恋红尘5 小时前
K8S 高级调度-叩丁狼
adb·容器·kubernetes
恋红尘5 小时前
K8S 控制器-资源调度-叩丁狼
linux·docker·kubernetes