You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Prometheus配置Kubernetes Pod故障告警?

Kubernetes集群Pod故障告警配置方法

要在K8s集群里实现Pod故障时自动发通知,核心靠Prometheus采集指标、配置告警规则,再通过Alertmanager推送通知,具体步骤如下:

  • 1. 确保Prometheus能抓取K8s Pod状态指标
    先得让Prometheus拿到Pod的状态数据,一般通过部署kube-state-metrics组件,或者用Prometheus Operator的默认采集配置,确保kube_pod_status_phase这类指标能正常出现在Prometheus的指标列表里。

  • 2. 配置Prometheus告警规则
    把示例规则翻译成中文并说明各字段作用,直接放到Prometheus的告警规则文件(比如alerting_rules.yaml)中:

    - alert: KubernetesPodNotHealthy
      expr: sum by (namespace, pod) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"}) > 0
      for: 15m
      labels:
        severity: critical
      annotations:
        summary: Kubernetes Pod 状态异常(实例 {{ $labels.instance }})
        description: "Pod 已处于非就绪状态超过15分钟。
    VALUE = {{ $value }}
    LABELS = {{ $labels }}"
    

    各字段说明:

    • alert:告警的唯一标识名称
    • expr:PromQL查询语句,统计处于Pending/Unknown/Failed异常状态的Pod,按命名空间和Pod维度聚合,结果大于0则满足告警触发条件
    • for:异常状态持续15分钟才触发告警,避免短暂波动导致的误报
    • labels:给告警打上严重级别标签,方便后续按级别处理
    • annotations:告警的详细描述,包含具体实例、异常值和标签信息,帮助快速定位问题
  • 3. 配置Alertmanager发送通知
    光有告警规则还不够,得让Alertmanager把告警推送到指定渠道(邮件、企业微信、Slack等)。以下是邮件通知的简单配置示例,可根据实际需求调整:

    route:
      group_by: ['alertname']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 1h
      receiver: 'email-receivers'
    receivers:
    - name: 'email-receivers'
      email_configs:
      - to: '你的告警接收邮箱@xxx.com'
        from: '告警发送邮箱@xxx.com'
        smarthost: 'smtp.xxx.com:587'
        auth_username: '告警发送邮箱@xxx.com'
        auth_password: '你的邮箱密码/授权码'
    

    配置完成后,要确保Prometheus配置文件里指定了Alertmanager的地址,让两者能正常通信。

内容的提问来源于stack exchange,提问作者tejas Mahakalkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:01:18