架构
简介
()提供一个企业级、基于 Kubernetes 的平台,帮助组织在混合云和多云环境中以一致的方式构建、部署和管理应用。 将核心 Kubernetes 能力与增强的管理、可观测性和安全服务相集成,提供统一的控制平面和灵活的业务集群。
该架构采用 hub-and-spoke 模式,由一个 global 集群和多个业务集群组成。这种设计在提供集中式治理的同时,也允许工作负载独立运行并按需扩展。
关于平台范围术语(例如 global 集群、业务集群和集群插件)的标准定义,请参见 Glossary。
核心架构组件
global 集群
global 集群是 的集中式管理和控制中心。它提供平台级服务,例如身份验证、策略管理、集群生命周期操作和可观测性。它也是多集群管理的中心枢纽,并提供跨集群功能。
关键组件包括:
- Gateway
作为平台的主要入口点。它管理来自 UI、CLI(kubectl)和自动化工具的 API 请求,并将其路由到相应的后端服务。 - 认证与授权(Auth)
与外部 Identity Provider(IdPs)集成,提供单点登录(SSO)和基于 RBAC 的访问控制。 - Web Console
为 提供基于 Web 的界面。它通过 gateway 与平台 API 交互。 - 集群管理
处理业务集群的注册、供应和生命周期管理。 - Services
- Operator Lifecycle Manager(OLM)和集群插件
管理 operator 和集群扩展的安装、更新和生命周期。 - 内部镜像仓库
提供开箱即用的集成容器镜像仓库,并支持基于角色的访问。 - 可观测性
为global集群和业务集群提供集中式日志、指标和链路追踪。 - Cluster Proxy
使global集群与业务集群之间能够安全通信。
业务集群
业务集群是由 global 集群管理的基于 Kubernetes 的环境。每个业务集群运行相互隔离的应用工作负载,并继承中央控制平面的治理和配置。
外部集成
- Identity Provider(IdP)
支持通过标准协议(OIDC、SAML)进行联合身份验证,以实现统一的用户管理。 - API 和 CLI 访问
用户可以通过 RESTful API、Web 控制台,或像kubectl和ac这样的命令行工具与 交互。 - 负载均衡器(VIP/DNS/SLB)
为global集群和业务集群的 Gateway 及 ingress 端点提供高可用性和流量分发。
可扩展性和高可用性
采用水平扩展和高可用设计:
- 每个组件都可以通过冗余部署来消除单点故障。
global集群支持管理数十到数百个业务集群。- 业务集群可根据工作负载需求独立扩展。
- 使用 VIP/DNS/Ingress 可确保平滑路由和故障切换。
功能视角
()的完整功能由 Core 以及基于两种技术栈的扩展组成:Operator 和 Cluster Plugin。
-
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 协议进行领导者选举和数据复制
- 三节点部署可容忍最多一个节点故障;五节点部署可容忍最多两个节点故障
- 支持本地和远程 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 Sentinel 模式
- 无状态服务以多个副本部署
Registry 和 MinIO
- Registry 以三个副本部署
- MinIO 采用带纠删码的分布式模式,具备数据冗余和自动恢复能力