一台电脑模拟多节点 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 / 实验环境
相关推荐
SatanII11 小时前
Kubernetes 认证与授权详解:守护集群API访问安全
安全·贪心算法·kubernetes
闲云野鹤在人间12 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
Jack N12 小时前
【Strapi 系列之八】二次开发 + 生产部署,Docker + PostgreSQL + Nginx 一把梭
nginx·docker·postgresql·strapi
艾伦_耶格宇12 小时前
【kubernetes - 1.28版本】-7 K8S命令
云原生·容器·kubernetes
L0208241 天前
Kubernetes Ingress|CNI 网络模型|Calico 网络策略|Pod 调度器完整实战教程
运维·网络·云原生·容器·kubernetes
吴声子夜歌1 天前
Kubernetes权威指南——Kubernetes安装配置指南(网络配置)
网络·容器·kubernetes
闲云野鹤在人间1 天前
Kubernetes Pod Scheduler 详解
云原生·容器·kubernetes
切糕师学AI1 天前
Kubernetes 探针全解析:启动探针、存活探针与就绪探针(Startup/Liveness/Readiness Probe)
容器·kubernetes·探针·probe
xianyuCcCcCCCcc1 天前
Kubernetes :健康检查、认证授权与可视化面板
运维·云原生·kubernetes·dashboard