K8s 组件架构(平台层)
2026-07-13 · k8s · 6 次阅读
本文描述 k8s 测试集群 的 平台与中间件组件 架构
1. 集群概览
| 项目 |
值 |
| 环境 |
测试 集群 |
| Kubernetes 版本 |
v1.24.6(Client / Server 一致) |
| Kustomize |
v4.5.4 |
| API Server |
https://apiserver.cluster.local:6443 |
| 容器运行时 |
Docker Engine 25.0.5 + cri-dockerd |
| 节点 OS |
Ubuntu 20.04.6 LTS / Kernel 5.4.0-144-generic |
2. 节点拓扑
3 控制面 + 2 工作节点,全部为 Ready。
| 主机名 |
角色 |
内网 IP |
版本 |
运行时 |
| k8s-master51 |
control-plane |
10.10.10.51 |
v1.24.6 |
docker://25.0.5 |
| k8s-master52 |
control-plane |
10.10.10.52 |
v1.24.6 |
docker://25.0.5 |
| k8s-master53 |
control-plane |
10.10.10.53 |
v1.24.6 |
docker://25.0.5 |
| k8s-worker54 |
worker |
10.10.10.54 |
v1.24.6 |
docker://25.0.5 |
| k8s-worker55 |
worker |
10.10.10.55 |
v1.24.6 |
docker://25.0.5 |
┌─────────────────────────────────────┐
│ apiserver.cluster.local:6443 │
│ (堆叠 etcd · 3 控制面) │
└─────────────────────────────────────┘
│ │ │
┌────────────┘ │ └────────────┐
▼ ▼ ▼
k8s-master51 k8s-master52 k8s-master53
10.10.10.51 10.10.10.52 10.10.10.53
│ │ │
└────────────────────────┼────────────────────────┘
│
┌──────────────────┴──────────────────┐
▼ ▼
k8s-worker54 k8s-worker55
10.10.10.54 10.10.10.55
3. 分层架构
flowchart TB
subgraph L0["L0 · 集群基础(kube-system)"]
API[API Server / etcd / Scheduler / Controller Manager]
DNS[CoreDNS]
CNI[CNI 网络插件]
end
subgraph L1["L1 · 入口与证书"]
ING[ingress-nginx]
CM[cert-manager]
end
subgraph L2["L2 · 存储与镜像"]
NFS[nfs-provisioner]
HB[Harbor]
end
subgraph L3["L3 · 集群管理"]
RAN[Rancher · cattle-system]
FLT[Fleet · cattle-fleet-system]
WH[rancher-webhook]
end
subgraph L4["L4 · 中间件"]
MY[MySQL]
NC[Nacos]
RMQ[RocketMQ]
end
API --> DNS
API --> CNI
ING --> CM
HB --> ING
HB --> NFS
RAN --> ING
RAN --> CM
RAN --> WH
FLT --> RAN
MY --> NFS
NC --> MY
NC --> NFS
RMQ --> NFS
| 层级 |
职责 |
命名空间 |
| L0 |
K8s 控制面、DNS、CNI |
kube-system |
| L1 |
南北向流量入口、TLS 证书 |
ingress-nginx、cert-manager |
| L2 |
动态存储供给、私有镜像仓库 |
nfs-provisioner、harbor |
| L3 |
多集群/应用生命周期管理 |
cattle-system、cattle-fleet-system |
| L4 |
有状态中间件(数据、注册、消息) |
mysql、nacos、rocketmq |
安装顺序与依赖关系见 Helm部署文档.md §4。
4. 平台组件清单
4.1 内置组件(kube-system)
| 组件 |
说明 |
| kube-apiserver |
集群 API 入口 |
| etcd |
键值存储(堆叠于控制面) |
| kube-scheduler |
Pod 调度 |
| kube-controller-manager |
控制器循环 |
| CoreDNS |
集群内 DNS |
4.2 Helm 部署组件(平台 / 中间件)
| 命名空间 |
组件 |
镜像 / 版本 |
部署文档 |
ingress-nginx |
Ingress Controller |
registry.k8s.io/ingress-nginx/controller:v1.8.1 |
ingress-nginx部署文档.md |
cert-manager |
证书控制器 |
quay.io/jetstack/cert-manager-controller:v1.12.13 |
cert-manager部署文档.md |
nfs-provisioner |
NFS 动态供给 |
nfs-subdir-external-provisioner:v4.0.2 |
nfs-provisioner部署文档.md |
harbor |
私有镜像仓库 |
goharbor/harbor-core:v2.8.2 |
Harbor部署文档.md |
cattle-system |
Rancher Server |
rancher/rancher:v2.6.9 |
Rancher部署文档.md |
cattle-system |
rancher-webhook |
rancher/rancher-webhook:v0.2.10 |
Rancher 附属 |
cattle-fleet-system |
Fleet Controller |
Fleet(随 Rancher) |
Rancher 附属 |
mysql |
MySQL 主从 |
bitnamilegacy/mysql:8.4.5-debian-12-r0 |
MySQL部署文档.md |
nacos |
注册 / 配置中心 |
nacos/nacos-server:v2.2.1 |
Nacos部署文档.md |
rocketmq |
消息队列 |
apache/rocketmq:4.9.4 |
RocketMQ部署文档.md |
4.3 Rancher 生态附属(cattle-system / cattle-fleet-system)
| 工作负载 |
命名空间 |
说明 |
deployment/rancher-webhook |
cattle-system |
Rancher 准入 Webhook |
deployment/fleet-controller |
cattle-fleet-system |
Fleet 多集群 GitOps 控制器 |
helm-operation-*(临时 Pod) |
cattle-system |
Rancher 执行 Helm 安装/升级的一次性任务 Pod |
5. 组件依赖关系(简表)
| 消费者 |
依赖 |
| Harbor |
ingress-nginx、StorageClass(NFS) |
| Rancher |
ingress-nginx、cert-manager(视 TLS 方案)、cattle-system NS |
| rancher-webhook / Fleet |
Rancher 主服务、可拉取的 Rancher 镜像 |
| Nacos(外接 MySQL) |
MySQL 库表已初始化、StorageClass |
| MySQL / RocketMQ |
StorageClass(NFS provisioner) |
| 各组件 Ingress 暴露 |
ingress-nginx IngressClass |