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 细节,而是通过以下层次实现松耦合:

  1. API 网关层:统一对外暴露 REST/gRPC 接口,内部路由到不同的后端服务(CAPI 控制器、成本计算服务、审批引擎)。
  2. 抽象模型层:定义“集群模板”“节点池”“扩缩容策略”等业务对象,这些对象与 CAPI 的 Cluster、MachineDeployment 等 CRD 一一映射,但门户只操作抽象模型。
  3. 适配器层:将抽象模型转换为具体的 CAPI 资源或云厂商 API 调用。例如,一个“扩缩容请求”被适配器转换为 MachineDeployment 的 replicas 更新或 ClusterClass 的参数调整。
  4. 事件驱动层:通过监听 CAPI 控制器的状态事件(如 Machine 创建成功、Cluster 就绪),更新门户中的资源状态,实现最终一致性。
平台门户解耦架构图 用户 / API 客户端 API 网关(统一入口) 抽象模型层(集群模板 / 节点池 / 策略) 适配器层(CAPI / Terraform / 云 API) 基础设施层(CAPI Cluster / Machine / 云资源) ClusterClass / MachineDeployment / 虚拟机 / 网络 解耦:门户不直接 操作 CRD,通过适配器转换
解耦收益: 当底层 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 可能需要数分钟),门户应通过事件监听或轮询机制展示中间状态,避免用户误判。同时,门户需要实现“操作幂等性”,防止重复扩缩容请求导致资源异常。
门户集成 CAPI 典型场景流程 平台用户 平台门户 CAPI 控制器 云/基础设施 ① 发起扩缩容请求 ② 转换为抽象模型 ③ 适配器生成 CRD ④ 执行资源变更 ⑤ 状态事件反馈 ⑥ 状态同步到门户 ⑦ 展示最终状态给用户 典型扩缩容流程说明 用户通过门户发起扩缩容 → 门户转换为抽象模型 → 适配器生成 CAPI 资源(MachineDeployment replicas 更新) → CAPI 控制器执行 → 状态事件通过监听反馈到门户 → 用户看到最终结果