Deployment服务目录容量巡检与告警部署 - 第2节
核心概念:Deployment 水位定义
在服务目录平台中,Deployment 水位是指 Kubernetes 工作负载(Deployment)在运行过程中,其资源使用、实例状态与运行稳定性相对于预设健康基准线的偏离程度。水位巡检的核心目标是通过量化指标,将“正常”与“异常”之间的模糊边界转化为可观测、可告警、可追溯的工程数据。
水位 ≠ 资源利用率:水位是一个综合健康度概念,包含资源使用、实例冗余、运行稳定性三个维度。单一维度的资源利用率高并不一定代表水位异常,但多个维度同时偏离阈值则意味着风险。
水位巡检的三大维度
| 维度 | 核心关注点 | 典型异常场景 |
|---|---|---|
| 资源水位 | CPU 与内存的实际使用率 vs. 资源请求/限制 | CPU 持续 90%+ 导致限流;内存 OOMKilled 频繁 |
| 实例水位 | 副本数(replicas)的期望值 vs. 实际可用值 | 副本数长期低于期望值,HPA 扩缩容失效 |
| 稳定性水位 | 容器重启次数、CrashLoopBackOff 频率 | 单 Pod 在 1 小时内重启超过 5 次 |
水位巡检的核心指标
服务目录平台在采集 Deployment 水位数据时,需要关注以下四个关键指标。每个指标都对应一个明确的采集源与计算方式:
指标一:CPU 使用率
- 采集源:Kubernetes Metrics Server / Prometheus
container_cpu_usage_seconds_total - 计算方式:
rate(container_cpu_usage_seconds_total[5m]) / container_spec_cpu_quota - 水位含义:反映 Pod 对 CPU 资源的实际消耗与上限之间的比例。持续高水位可能导致 CPU Throttling。
指标二:内存使用率
- 采集源:
container_memory_working_set_bytes - 计算方式:
container_memory_working_set_bytes / container_spec_memory_limit_bytes - 水位含义:反映 Pod 实际使用的内存(working set)与内存限制的比例。接近 100% 时极易触发 OOMKill。
指标三:副本数偏差率
- 采集源:Kubernetes Deployment
spec.replicas与status.availableReplicas - 计算方式:
(期望副本数 - 可用副本数) / 期望副本数 × 100% - 水位含义:偏差率 > 0 表示实际可用实例少于期望值,服务容量不足;偏差率 < 0 表示过度冗余。
指标四:容器重启次数
- 采集源:Pod
status.containerStatuses[].restartCount - 计算方式:取过去 1 小时内所有容器重启次数的总和
- 水位含义:重启次数突增通常意味着程序异常、资源不足或健康检查配置不当。
水位健康阈值
阈值的设定直接影响巡检的灵敏度与误报率。服务目录平台采用三层阈值体系:警告(Warning)、严重(Critical)、致命(Fatal)。以下为推荐初始值,实际生产环境中应根据服务等级(SLA)与历史基线进行调整。
| 指标 | 警告阈值 | 严重阈值 | 致命阈值 | 说明 |
|---|---|---|---|---|
| CPU 使用率 | ≥ 70% | ≥ 85% | ≥ 95% | 持续 5 分钟以上 |
| 内存使用率 | ≥ 75% | ≥ 90% | ≥ 98% | 接近 limit 时风险陡增 |
| 副本数偏差率 | 偏差 > 10% | 偏差 > 25% | 偏差 > 50% | 偏差 = (期望 - 可用) / 期望 |
| 重启次数 | 1 小时内 > 3 次 | 1 小时内 > 5 次 | 1 小时内 > 10 次 | 含 CrashLoopBackOff |
阈值调优建议:不要直接套用上述默认值。建议在服务目录平台中开启“自动基线学习”模式,基于过去 7 天或 30 天的历史数据,动态计算每个 Deployment 的个性化阈值。对于核心支付链路,阈值应比默认值收紧 10%~15%。
水位健康度评分模型
服务目录平台将四个指标的水位状态映射为一个综合健康度评分(0~100 分),用于快速判断 Deployment 的整体水位健康等级:
- 健康(90~100 分):所有指标均低于警告阈值,无需关注。
- 亚健康(70~89 分):至少一个指标处于警告区间,建议观察或计划性扩容。
- 风险(50~69 分):至少一个指标处于严重区间,需要立即介入。
- 危险(0~49 分):至少一个指标处于致命区间,触发 P0 告警并自动执行降级预案。
实践要点:在服务目录平台中,水位评分应作为服务卡片上的“健康指示灯”直接展示。运维人员可以一眼识别哪些服务处于“亚健康”或“风险”状态,从而优先处理。