架构

简介

)提供一个企业级、基于 Kubernetes 的平台,使组织能够在混合云和多云环境中以一致的方式构建、部署和管理应用。 将 Kubernetes 核心能力与增强的管理、可观测性和安全服务相结合,提供统一的控制平面和灵活的业务集群。

该架构采用 hub-and-spoke 模式,由一个 global 集群和多个业务集群组成。该设计在提供集中治理的同时,允许工作负载独立运行并具备可扩展性。

有关平台级术语(如 global 集群、业务集群和集群插件)的权威定义,请参见 Glossary

核心架构组件

global 集群

global 集群作为 的集中管理和控制枢纽。它提供身份验证、策略管理、集群生命周期操作和可观测性等平台级服务。它还是多集群管理的中心枢纽,并提供跨集群功能。

关键组件包括:

  • Gateway 作为平台的主要入口。它负责管理来自 UI、CLI(kubectl)和自动化工具的 API 请求,并将其路由到相应的后端服务。
  • 身份验证和授权(Auth) 与外部 Identity Providers(IdPs)集成,提供单点登录(SSO)和基于 RBAC 的访问控制。
  • Web Console 提供基于 Web 的界面,并通过 gateway 与平台 API 交互。
  • 集群管理 负责业务集群的注册、预配和生命周期管理。
  • 服务
  • Operator 生命周期管理器(OLM)和集群插件 管理 operator 和集群扩展的安装、更新以及生命周期。
  • 内部镜像仓库 提供开箱即用的集成容器镜像仓库,并支持基于角色的访问控制。
  • 可观测性global 集群和业务集群提供集中式日志、指标和链路追踪。
  • Cluster Proxy 支持 global 集群与业务集群之间的安全通信。

业务集群

业务集群是由 global 集群管理的基于 Kubernetes 的环境。每个业务集群都运行隔离的应用工作负载,并继承来自中央控制平面的治理和配置。

外部集成

  • Identity Provider(IdP) 支持通过标准协议(OIDC、SAML)进行联合身份验证,以实现统一的用户管理。
  • API 和 CLI 访问 用户可以通过 RESTful API、Web Console,或 kubectlac 等命令行工具与 交互。
  • 负载均衡器(VIP/DNS/SLB)global 集群和业务集群的 Gateway 与 ingress 端点提供高可用性和流量分发。

可扩展性和高可用性

旨在实现水平扩展和高可用性:

  • 每个组件都可以冗余部署,以消除单点故障。
  • global 集群支持管理数十到数百个业务集群。
  • 业务集群可以根据工作负载需求独立扩展。
  • 使用 VIP/DNS/Ingress 可确保无缝路由和故障切换。

功能视角

)的完整功能由 Core 和基于两套技术栈的扩展组成:Operator集群插件

  • Core

    的最小交付单元,提供集群管理、容器编排、项目和用户管理等核心能力。

    • 满足最高安全标准
    • 提供最高稳定性
    • 提供最长支持生命周期
  • 扩展

    Operator 和 Cluster Plugin 两套技术栈中的扩展可分为:

    • Aligned – 由多个维护分支组成的生命周期策略,并与 保持一致。
    • Agnostic – 由多个维护分支组成的生命周期策略,独立于 发布。

    有关扩展的更多信息,请参见 Extend

技术视角

平台组件运行时 所有平台组件都以容器形式运行在 Kubernetes 管理集群(即 global 集群)中。

高可用架构

  • global 集群通常至少包含三个控制平面节点和多个工作节点
  • etcd 的高可用性是集群 HA 的核心;详情请参见 关键组件高可用机制
  • 负载均衡可以由外部负载均衡器提供,也可以由集群内部自建 VIP 提供

请求路由

  • 客户端请求首先经过负载均衡器或自建 VIP
  • 请求被转发到运行在指定 ingress 节点上的 ALB(平台默认的 Kubernetes Ingress Gateway)(如已配置,也可运行在控制平面节点上)
  • ALB 根据配置的规则将流量路由到目标组件 Pod

副本策略

  • 核心组件至少运行两个副本
  • 关键组件(如 registry、MinIO、ALB)运行三个副本

故障容错与自愈

  • 通过 kubelet、kube-controller-manager、kube-scheduler、kube-proxy、ALB 等组件协同实现
  • 包括健康检查、故障切换和流量重定向

数据存储与恢复

  • 控制平面配置和平台状态以 Kubernetes 资源形式存储在 etcd 中
  • 在灾难性故障中,可通过 etcd 快照进行恢复

主 / 备灾难恢复

  • 两个独立的 global 集群:主集群备集群
  • 灾难恢复机制基于将 etcd 数据从主集群实时同步到备集群。
  • 如果主集群因故障不可用,服务可以快速切换到备集群。

关键组件高可用机制

etcd

  • 部署在三个(或五个)控制平面节点上
  • 使用 RAFT 协议进行领导者选举和数据复制
  • 三节点部署最多可容忍 1 个节点故障;五节点部署最多可容忍 2 个节点故障
  • 支持本地和远程 S3 快照备份

监控组件

  • Prometheus:多个实例,通过 Thanos Query 进行去重,并支持跨地域冗余
  • VictoriaMetrics:集群模式,包含分布式 VMStorage、VMInsert 和 VMSelect 组件

日志组件

  • Nevermore 收集日志和审计数据
  • Kafka / Elasticsearch / Razor / Lanaya 以分布式和多副本模式部署

网络组件(CNI)

  • Kube-OVN / Calico / Flannel:通过无状态 DaemonSet 或三副本控制平面组件实现 HA

ALB

  • Operator 以三个副本部署,并启用领导者选举
  • 实例级健康检查和负载均衡

自建 VIP

  • 基于 Keepalived 的高可用虚拟 IP
  • 支持心跳检测和主备切换

Harbor

  • 基于 ALB 的负载均衡
  • 采用 Patroni HA 的 PostgreSQL
  • Redis 哨兵模式
  • 无状态服务以多个副本部署

Registry 和 MinIO

  • Registry 以三个副本部署
  • MinIO 采用分布式模式,具备纠删码、数据冗余和自动恢复能力