概述

本文档基于提供的告警定义,对Kubernetes集群监控系统中各类告警进行详细说明,包含告警级别、含义、原因及处理建议。

告警级别

级别 图标 说明 响应要求
Critical(严重) 🔴 服务不可用或即将不可用,需要立即处理 立即响应,15分钟内处理
Warning(警告) 🟠 潜在问题或性能下降,需要关注 1小时内处理或制定计划
Info(信息) 🔵 状态变更或信息通知,无需立即处理 日常维护时关注

告警分类

一、应用级别告警(Application Alerts)

1. 容器相关告警

告警:KubeContainerOOMKilled(容器OOMKilled)

  • 告警级别:Critical 🔴
  • 类型:Container / app
  • 概述:容器因内存耗尽(Out Of Memory)被系统强制终止
  • 触发条件:5分钟内,容器被系统强制终止
  • 可能原因
    1. 容器的内存资源限制(limits.memory)设置过低,无法满足应用需求
    2. 应用存在内存泄漏,导致内存使用量持续增长
    3. 节点资源不足,触发系统级 OOM Killer 终止容器
  • 排查步骤
    1. 确认容器因 OOM 被终止
    2. 分析内存限制配置
    3. 监控容器的内存使用
  • 告警描述:节点 ${node} 上,容器 ${namespace} / ${pod} (${container}) 发生 OOMKilled,镜像 ${image}

告警:KubeContainerRestart(容器被重启)

  • 告警级别:Warning 🟠
  • 类型:Container / app
  • 概述:容器因异常退出后被自动重启
  • 触发条件:容器在5分钟内重启次数大于0次
  • 可能原因
    1. 容器进程崩溃或异常退出(如代码错误、未捕获异常)
    2. 存活探针(Liveness Probe)配置不合理,导致容器被误杀
    3. 资源不足(CPU/内存)导致容器反复崩溃
    4. 容器启动命令或参数错误(如配置文件缺失)
  • 告警描述:上次重启原因:${reason},容器 ${namespace} > ${pod} > ${container}(节点 ${node} 上),近5分钟内重启 ${value} 次

告警:KubeContainerWaiting(容器长期等待)

  • 告警级别:Warning 🟠
  • 类型:Container / app
  • 概述:容器处于 Waiting 状态且持续时间过长,可能无法正常启动
  • 触发条件:容器处于等待状态超过1小时
  • 可能原因
    1. ImagePullBackOff:镜像拉取失败(如镜像不存在、权限不足、网络问题)
    2. CrashLoopBackOff:容器启动后立即崩溃
    3. CreateContainerError:容器创建失败(如存储卷挂载错误、安全策略限制)
    4. 节点资源不足(如 CPU、内存、磁盘空间)
  • 操作手册https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubecontainerwaiting

2. Pod相关告警

告警:KubePodCrashLooping(Pod循环崩溃)

  • 告警级别:Critical 🔴
  • 类型:Container / app
  • 概述:Pod 中的容器反复崩溃并重启,进入 CrashLoopBackOff 状态
  • 触发条件:容器启动后立即崩溃(CrashLoopBackOff)状态,持续超过15分钟
  • 可能原因
    1. 应用启动时发生致命错误(如配置错误、依赖服务不可用)
    2. 资源配额不足(如内存不足触发 OOMKilled)
    3. 存活探针(Liveness Probe)过于敏感,导致容器被频繁重启
    4. 外部依赖异常:如数据库、API 服务无法连接
  • 处理建议https://cloud.tencent.com/document/product/457/43130
  • 操作手册https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodcrashlooping

告警:KubePodNotReady(Pod未就绪)

  • 告警级别:Critical 🔴
  • 类型:Pod / app
  • 概述:Pod 未达到就绪状态,无法接收流量
  • 触发条件:Pod 的 Ready 状态持续为 false 超过15分钟
  • 可能原因
    1. 容器未就绪:容器仍在启动或就绪探针(readinessProbe)失败
    2. 资源问题:节点资源不足或调度失败
    3. 网络问题:网络插件异常、端口冲突或 CNI 配置错误
    4. 依赖异常:依赖的存储卷未挂载或配置错误
    5. 节点故障:节点宕机或处于维护状态
  • 操作手册https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepodnotready

二、工作负载告警(Workload Alerts)

1. 无状态工作负载(Deployment)

告警:KubeDeploymentReplicasMismatch(无状态工作负载副本数量与预期不符)

2. 有状态工作负载(StatefulSet)

告警:KubeStatefulSetReplicasMismatch(有状态工作负载副本数量与预期不符)

告警:KubeStatefulSetUpdateNotRolledOut(有状态工作负载滚动更新未完成)

3. 守护进程集(DaemonSet)

告警:KubeDaemonSetRolloutStuck(守护进程集部署未完成)

4. 任务(Job)

告警:KubeJobNotCompleted(任务未完成)

告警:KubeJobFailed(任务失败)

三、自动伸缩告警(Autoscaling Alerts)

告警:KubeHpaReplicasMismatch(HPA预期副本数不匹配)

告警:KubeHpaMaxedOut(HPA达到最大副本数)

四、服务发现告警(Service Discovery Alerts)

告警:TargetDown(目标服务不可用)

五、资源配额告警(Resource Quota Alerts)

1. 集群资源告警

告警:KubeCPUOvercommit(容器组CPU资源申请过量)

告警:KubeMemoryOvercommit(容器组内存资源申请过量)

告警:KubeCPUQuotaOvercommit(集群CPU超额分配)

告警:KubeMemoryQuotaOvercommit(集群内存超额分配)

2. 命名空间配额告警

告警:KubeQuotaAlmostFull(命名空间配额将满)

告警:KubeQuotaFullyUsed(命名空间配额已满)

告警:KubeQuotaExceeded(命名空间配额超限)

3. 容器资源告警

告警:CPUThrottlingHigh(CPU高限流)

  • 告警级别:Warning 🟠
  • 类型:Container / resources
  • 概述:容器内进程因CPU资源被限制(节流)而无法充分运行
  • 触发条件:容器超过25%的CPU执行周期受限(持续15分钟)
  • 告警描述:容器 ${namespace} / ${pod} (${container}), 超过25% (当前值: ${value}) 的CPU执行周期受限(持续15分钟)
  • 处理建议:适当提高容器cpu上限
  • 操作手册https://runbooks.prometheus-operator.dev/runbooks/kubernetes/cputhrottlinghigh

六、存储告警(Storage Alerts)

1. 持久卷告警

告警:KubePersistentVolumeFillingUp_critical(存储将满-严重)

告警:KubePersistentVolumeFillingUp_warning(存储将满-警告)

2. Inodes告警

告警:KubePersistentVolumeInodesFillingUp_critical(存储将满-严重)

告警:KubePersistentVolumeInodesFillingUp_warning(存储将满-警告)

3. 存储卷状态告警

告警:KubePersistentVolumeErrors(存储卷异常)

七、节点相关告警(Node Alerts)

1. Kubelet告警

告警:KubeletTooManyPods(节点Pod过多)

2. 存储空间告警

告警:NodeFilesystemAlmostOutOfSpace_warning(节点文件系统将用尽-警告)

告警:NodeFilesystemAlmostOutOfSpace_critical(节点文件系统将用尽-严重)

告警级别总结

Critical级别告警(需要立即处理)

  1. 服务中断类

    • KubeContainerOOMKilled
    • KubePodCrashLooping
    • KubePodNotReady
    • TargetDown
    • KubeJobFailed
    • KubeQuotaExceeded
  2. 存储严重告警

    • KubePersistentVolumeFillingUp_critical
    • KubePersistentVolumeInodesFillingUp_critical
    • KubePersistentVolumeErrors
    • NodeFilesystemAlmostOutOfSpace_critical

Warning级别告警(需要关注并计划处理)

  1. 资源异常类

    • KubeContainerRestart
    • KubeContainerWaiting
    • KubeDeploymentReplicasMismatch
    • KubeStatefulSetReplicasMismatch
    • KubeStatefulSetUpdateNotRolledOut
    • KubeDaemonSetRolloutStuck
    • KubeJobNotCompleted
  2. 资源配额类

    • KubeCPUOvercommit
    • KubeMemoryOvercommit
    • KubeCPUQuotaOvercommit
    • KubeMemoryQuotaOvercommit
    • KubeQuotaAlmostFull
    • KubeQuotaFullyUsed
    • CPUThrottlingHigh
  3. 存储预警类

    • KubePersistentVolumeFillingUp_warning
    • KubePersistentVolumeInodesFillingUp_warning
    • NodeFilesystemAlmostOutOfSpace_warning
  4. 自动伸缩类

    • KubeHpaReplicasMismatch
    • KubeHpaMaxedOut
    • KubeletTooManyPods

通用处理建议

告警处理流程

  1. 确认告警级别:根据告警级别确定响应优先级
  2. 查看告警详情:确认告警对象、状态和具体数值
  3. 分析根本原因:根据告警的可能原因进行系统排查
  4. 查阅操作手册:参考提供的Runbook获取标准化处理步骤
  5. 执行修复操作:根据分析结果采取相应措施
  6. 验证修复效果:确认告警是否消除,监控服务状态

响应时间要求

告警级别 首次响应时间 解决时间 通知机制
Critical 15分钟内 2小时内 电话/短信/即时消息
Warning 1小时内 4小时内 邮件/即时消息
Info 4小时内 下一个工作日 邮件
作者:叶奕珺  创建时间:2025-12-26 17:17
最后编辑:叶奕珺  更新时间:2026-01-15 14:15