3. 服务目录平台介绍
服务目录平台是连接基础设施能力与业务应用的中间层,它屏蔽了底层 Kubernetes 集群的复杂性,以“服务”为粒度提供标准化交付、观测与治理能力。在 Deployment 水位巡检场景中,平台负责聚合多集群水位数据、定义巡检规则、触发巡检任务并展示结果。
3.1 平台架构
平台采用分层解耦架构,从上到下分为四层:接入层、服务目录层、编排调度层和基础设施层。各层职责清晰,通过 API 与事件总线通信。
架构设计要点: 服务目录层是核心,它维护了服务与 Deployment 的映射关系;编排调度层负责将巡检任务转换为 Kubernetes Job 并下发到目标集群。
3.2 核心功能模块
平台围绕服务全生命周期管理,提供以下核心功能模块。其中与 Deployment 水位巡检直接相关的模块已用 粗体 标出。
| 功能模块 | 职责说明 | 巡检关联度 |
|---|---|---|
| 服务模型管理 | 定义服务元数据、Owner、SLA 等级、关联 Deployment 列表 | 高 — 确定巡检范围 |
| 水位巡检引擎 | 配置巡检规则(CPU/内存/副本数阈值)、定时触发、结果判定 | 核心 — 巡检执行主体 |
| 版本与发布管理 | 管理服务版本、镜像、配置变更记录 | 低 — 用于关联变更事件 |
| 多集群资源视图 | 聚合展示多集群 Deployment 实时水位、Pod 分布、事件流 | 高 — 巡检数据来源 |
| 服务拓扑与依赖 | 展示服务间调用关系、上下游依赖 | 中 — 辅助异常定位 |
| 告警与通知 | 基于巡检结果生成告警,通过钉钉/邮件/企微推送 | 高 — 巡检结果消费 |
巡检关联说明: 水位巡检引擎定期从多集群资源视图拉取 Deployment 的 request/limit/实际使用量,与服务模型中的水位阈值比对,超出阈值则触发告警。
3.3 与 Kubernetes 的集成方式
平台通过三种标准化方式与 Kubernetes 集群集成,覆盖数据采集、任务下发和状态同步三大场景。
3.3.1 集成方式对比
| 集成方式 | 通信协议 | 适用场景 | 安全机制 |
|---|---|---|---|
| Kubernetes API Proxy | HTTPS + RBAC | 实时查询 Deployment/Pod 水位数据 | 绑定 ServiceAccount,最小权限原则 |
| Agent 边车模式 | gRPC 双向流 | 持续采集水位指标、事件流,支持离线缓存 | mTLS 双向认证 |
| Webhook 回调 | HTTPS + 签名 | 接收集群事件(Pod 重启、OOM、节点故障) | HMAC-SHA256 签名校验 |
3.3.2 集成流程示例
以水位巡检数据采集为例,平台通过 Kubernetes API Proxy 方式获取目标 Deployment 的实时状态:
# 平台内部封装后的调用示例
GET /api/v1/proxy/clusters/{clusterId}/namespaces/{ns}/deployments/{name}/status
# 返回数据片段(简化)
{
"deployment": "order-service",
"namespace": "prod",
"replicas": 3,
"readyReplicas": 3,
"containers": [
{
"name": "order",
"requests": {"cpu": "500m", "memory": "512Mi"},
"limits": {"cpu": "1000m", "memory": "1Gi"},
"currentUsage": {"cpu": "320m", "memory": "380Mi"}
}
]
}
集成注意事项: 平台不会直接暴露集群 Kubeconfig 给用户。所有 API 请求经过平台鉴权层,自动注入 RBAC ,避免凭证泄露风险。Agent 模式需在目标集群安装 DaemonSet,占用少量节点资源(约 50m CPU / 128Mi 内存)。
3.4 水位巡检在平台中的定位
Deployment 水位巡检是服务目录平台中 可观测性 与 治理能力 的交汇点。平台通过服务模型确定“巡检谁”,通过多集群资源视图获取“当前水位”,通过巡检引擎判定“是否健康”,最终将结果写入服务实例的状态中,形成闭环。
关键设计原则: 巡检规则以服务为单位配置,而非以 Deployment 为单位。一个服务可能对应多个 Deployment(如金丝雀、蓝绿部署),平台自动聚合所有关联 Deployment 的水位数据,按服务维度输出巡检报告。