一台电脑模拟多节点 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 / 实验环境
相关推荐
众人皆醒我独醉31 分钟前
etcd,其实不是你以为的"数据库"——Kubernetes 大脑的六个反直觉真相
面试·kubernetes
蜀道山老天师3 小时前
从零读懂 K8s:核心概念、集群架构与工作原理
容器·架构·kubernetes
碎碎念_4924 小时前
前后端分离项目开发规范
nginx·vue·springboot·restful
刘某的Cloud6 小时前
手工配置nginx的systemd服务
linux·运维·网络·nginx·systemd
刘某的Cloud8 小时前
Nginx 最小安全配置模板
linux·运维·nginx·安全·系统
前端Baymax9 小时前
kube-proxy iptables模式下NodePort间歇性超时
docker·容器·kubernetes
欢醉9 小时前
k8s的pod容器中微服务无法创建新线程unable to create new native thread
kubernetes·springboot
2501_915716721 天前
Nginx网关讲解_小白版
运维·nginx
蜀道山老天师1 天前
一文吃透 K8s:Deployment 滚动更新与版本回滚
云原生·容器·kubernetes
kylin-运维1 天前
k8s可视化看板嵌入AI助手(悬浮对话球)
人工智能·容器·kubernetes·aicoding