一台电脑模拟多节点 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 / 实验环境
相关推荐
weixin_462446232 小时前
在宝塔 Nginx 上安装与配置 lua-cjson 教程
nginx·junit·lua
hanyi_qwe2 小时前
Pod控制器与配置资源管理 【K8S (七)】
容器·kubernetes
米高梅狮子3 小时前
06. Nginx 服务器
运维·服务器·nginx
乐之者v3 小时前
如何访问k8s集群部署的微服务内部服务接口
微服务·容器·kubernetes
mr_orange_klj3 小时前
关于K8s身份权限的AI问答(豆包)
java·容器·kubernetes
[H*]3 小时前
Flutter框架跨平台鸿蒙开发——AnimatedIcon动画图标
运维·nginx·flutter
Leo July3 小时前
Kubernetes全解析:从容器编排到云原生实战
云原生·容器·kubernetes
岁岁种桃花儿3 小时前
K8s Nginx Pod 出现 CrashLoopBackOff?从配置排查到彻底解决
运维·nginx·kubernetes
花间相见12 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx