4. 平台门户概述:定义、功能与解耦设计
平台门户(Platform Portal)是云原生环境下面向运维人员、开发者和平台工程师的统一操作界面。它屏蔽了底层基础设施的复杂性,将集群生命周期管理、资源申请、监控告警、成本分析等能力抽象为可编排的“服务目录”。本章重点阐述平台门户的核心定义、功能边界、与底层基础设施的解耦设计原则,以及集成 CAPI 的典型场景。
4.1 平台门户的定义与核心功能
平台门户不是简单的“Kubernetes 控制台”,而是一个面向多租户、多集群、多云环境的统一抽象层。其核心职责包括:
- 统一入口:提供 Web UI、CLI 或 API 网关,集中管理所有集群和基础设施资源。
- 服务目录:将集群创建、扩缩容、升级、销毁等操作封装为“服务项”,用户无需关心底层 CAPI、Terraform 或云厂商 API。
- 多租户与权限:基于 RBAC 或 OPA 策略,实现租户隔离、资源配额和操作审计。
- 可观测性集成:聚合集群状态、节点资源、CAPI 控制器日志、成本数据,提供统一仪表盘。
- 自动化工作流:通过声明式配置或 GitOps 流水线,驱动集群扩缩容、升级等变更。
| 功能模块 | 说明 | 典型用户 |
|---|---|---|
| 集群生命周期管理 | 创建、扩缩容、升级、删除集群,底层调用 CAPI 或云厂商 API | 平台工程师、SRE |
| 资源申请与审批 | 用户按模板申请集群资源,触发审批流后自动交付 | 开发人员、测试人员 |
| 监控与告警 | 集成 Prometheus/Grafana,展示集群健康度、节点水位、CAPI 控制器状态 | SRE、运维人员 |
| 成本与配额管理 | 按租户、项目展示资源消耗,设置预算和配额上限 | 财务、项目经理 |
| 审计与合规 | 记录所有操作日志,支持回放和合规报告 | 安全团队、审计人员 |
关键认知: 平台门户的核心价值在于“抽象”与“编排”。它不直接管理物理服务器或虚拟机,而是通过 CAPI、ClusterClass、Terraform 等基础设施即代码工具,将底层资源声明化、可版本化、可审计化。
4.2 门户与底层基础设施的解耦设计
解耦是平台门户架构设计的首要原则。门户不应直接依赖特定云厂商的 SDK 或 CAPI 的 CRD 细节,而是通过以下层次实现松耦合:
- API 网关层:统一对外暴露 REST/gRPC 接口,内部路由到不同的后端服务(CAPI 控制器、成本计算服务、审批引擎)。
- 抽象模型层:定义“集群模板”“节点池”“扩缩容策略”等业务对象,这些对象与 CAPI 的 Cluster、MachineDeployment 等 CRD 一一映射,但门户只操作抽象模型。
- 适配器层:将抽象模型转换为具体的 CAPI 资源或云厂商 API 调用。例如,一个“扩缩容请求”被适配器转换为 MachineDeployment 的 replicas 更新或 ClusterClass 的参数调整。
- 事件驱动层:通过监听 CAPI 控制器的状态事件(如 Machine 创建成功、Cluster 就绪),更新门户中的资源状态,实现最终一致性。
解耦收益: 当底层 CAPI 版本升级、CRD 字段变更或云厂商切换时,只需更新适配器层,门户的抽象模型和前端逻辑无需改动。这大幅降低了平台维护成本,提升了架构的弹性。
4.3 门户集成 CAPI 的典型场景
平台门户与 CAPI 的集成并非简单的“CRUD 封装”,而是围绕集群快速扩缩容这一核心场景,衍生出以下典型用例:
- 场景一:按需创建临时集群 —— 开发/测试人员通过门户选择“集群模板”(如“标准 3 节点 + 2 节点池”),门户调用 CAPI 在指定云环境(AWS/GCP/私有云)中快速拉起集群。扩缩容时,用户只需调整“节点池大小”滑块,门户自动更新 MachineDeployment 的 replicas。
- 场景二:基于负载的自动扩缩容 —— 门户集成 Cluster Autoscaler 和 CAPI 的 MachineAutoscaler,用户可在门户中设置“最小/最大节点数”和“目标 CPU 利用率”。当工作负载增加时,Cluster Autoscaler 触发 MachineDeployment 扩容,门户实时展示扩缩容进度和节点状态。
- 场景三:集群升级与原地扩缩容 —— 通过 ClusterClass 和拓扑管理,门户支持“原地升级”节点池(如更换实例类型或 Kubernetes 版本),同时保持业务不中断。用户只需在门户中选择目标版本,系统自动编排滚动更新。
- 场景四:多云/混合云集群扩缩容 —— 门户统一管理多个 CAPI 管理集群(每个云环境一个),用户在一个界面中即可将 AWS 上的节点池从 3 节点扩容到 10 节点,同时将私有云上的节点池缩容到 1 节点。门户通过适配器层屏蔽不同云厂商的差异。
| 场景 | 门户操作 | CAPI 底层机制 | 用户收益 |
|---|---|---|---|
| 按需创建临时集群 | 选择模板 → 点击“创建” | 生成 Cluster + MachineDeployment | 分钟级交付,无需手动编写 YAML |
| 基于负载自动扩缩容 | 设置 min/max 节点数 | MachineAutoscaler + Cluster Autoscaler | 弹性伸缩,节省成本 |
| 集群升级与原地扩缩 | 选择目标版本 → 执行升级 | ClusterClass 拓扑 + 滚动更新 | 零停机升级,降低运维风险 |
| 多云/混合云扩缩容 | 统一界面操作不同云节点池 | 多 CAPI 管理集群 + 适配器转换 | 单一控制面,避免厂商锁定 |
集成注意事项: 门户集成 CAPI 时,必须处理好“最终一致性”问题。CAPI 控制器的状态更新存在延迟(如 Machine 从 Provisioning 到 Running 可能需要数分钟),门户应通过事件监听或轮询机制展示中间状态,避免用户误判。同时,门户需要实现“操作幂等性”,防止重复扩缩容请求导致资源异常。