组件注册与授权初始化
目的:自动发现和注册新业务组件
流程:
- License Controller 监听 Kubernetes API Server 上的 LicenseClient CRD 资源变化事件
- 从 CRD 读取组件标识、采集配置等信息
- 将授权信息、配额配置写入 License Database,更新 CRD status 为已注册
- 通过事件机制通知注册结果
周期性用量采集
目的:定期采集各组件的资源使用情况
流程:
- License Server 定时调度器每 5 分钟触发采集任务
- 从 Kubernetes 获取所有已注册的 LicenseClient 资源列表
- 并发调用各业务组件暴露的采集接口,获取约束项用量(CPU、Memory、实例数等)
- 汇总采集结果,计算配额使用率,按时间序列写入 License Database
- License UI 读取数据库展示统计报表和趋势图
扩容授权检查
目的:在组件扩容前验证是否有足够的配额
流程:
- 业务组件发起扩容请求(包含组件 ID、目标实例数等)
- License Server 验证请求合法性
- 从 License Database 查询组件的总配额和当前使用量
- 执行配额检查:
新增用量 + 当前使用量 ≤ 总配额→ 允许,否则拒绝 - 返回允许/拒绝结果,记录审计日志
四、配额策略与告警
告警规则:
- 预警(≥80%):黄色告警,建议尽快扩容
- 告警(≥100%):红色告警,禁止扩容,必须立即处理
通知渠道:站内信、邮件、短信、公告
管理员操作:
- 登录 License UI 查看实时用量、历史趋势、告警状态
- 修改组件配额、调整告警阈值、设置有效期
- License Server 监听策略变更事件,实时加载新配置
- 所有变更操作记录在 License Database 供审计追踪
五、关键设计原则
| 原则 | 说明 |
|---|---|
| 事件驱动 | 基于 CRD 事件自动触发注册流程 |
| 异步并发 | 采集时并发调用各组件接口,提高效率 |
| 配额优先 | 扩容前必须检查配额,防止资源超用 |
| 多层告警 | 预警和告警分级处理,及时通知管理员 |
| 完整审计 | 所有操作(注册、采集、检查、变更)都有日志 |
| 实时同步 | 策略变更立即生效,无需重启系统 |
六、核心数据流
CRD 变化事件
↓
Server 监听 → 读取配置 → 写入数据库 → 更新 CRD 状态
↓
定时采集触发
↓
Server 获取组件列表 → 并发采集接口 → 汇总用量 → 写入数据库
↓
告警规则检查 → 触发通知(平台公告/邮件/微信)
↓
UI 展示 → 管理员查看/配置 → 策略变更 → Server 同步新配置