一台电脑模拟多节点 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 / 实验环境
相关推荐
蝎子莱莱爱打怪12 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
闲云一鹤15 小时前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
何中应4 天前
Nginx转发请求错误
前端·后端·nginx
芝士雪豹只抽瑞克五5 天前
Nginx 高性能Web服务器笔记
服务器·nginx
阿里云云原生5 天前
Kubernetes 官方再出公告,强调立即迁移 Ingress NGINX
kubernetes
失重外太空啦5 天前
nginx
运维·nginx
至此流年莫相忘5 天前
Kubernetes实战篇之配置与存储
云原生·容器·kubernetes
天蓝不会忘记025 天前
lvs,haproxy,keepalived,nginx,tomcat介绍和实验
nginx·tomcat·lvs