igozhang

——

    K8s 组件架构(平台层)

    本文描述 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-nginxcert-manager
    L2 动态存储供给、私有镜像仓库 nfs-provisionerharbor
    L3 多集群/应用生命周期管理 cattle-systemcattle-fleet-system
    L4 有状态中间件(数据、注册、消息) mysqlnacosrocketmq

    安装顺序与依赖关系见 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

    MP3