当前位置: 首页 > news >正文

promethues上监控K3S中的pod的状态

第一步:安装kube-state-metrics

1、解决方案1:下载 Chart 文件
wget https://charts.bitnami.com/bitnami/kube-state-metrics-3.4.1.tgz
tar -zxvf kube-state-metrics-3.4.1.tgz
cd kube-state-metrics

2、如果value.yaml文件中镜像已经是国内源可以不用修改,不然修改如下

image:registry: docker.iorepository: bitnami/kube-state-metricstag: 1.9.7

3、安装

helm install kube-state-metrics . \--namespace kube-system \--create-namespace

解决方案2:直接使用kubectl部署

1、如果 Helm 完全不可用,可以直接通过 YAML 部署:

kubectl apply -f https://raw.githubusercontent.com/bitnami/charts/main/bitnami/kube-state-metrics/templates/deployment.yaml
# 手动修改 YAML 中的镜像为国内源

2、验证安装

kubectl get pods -n kube-system -l app.kubernetes.io/name=kube-state-metrics
kubectl logs -n kube-system -l app.kubernetes.io/name=kube-state-metrics

第二步:配置promethues.yaml文件,添加kube-state-metrics

  - job_name: 'kube-state-metrics'static_configs:- targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080']labels:service: kube-state-metrics

第三步:重启promethues后,点击promethues中的Target页面,显示刚刚添加的metrics为up状态。

第四步,修改rules.yaml文件,添加监控pod的告警规则

# Pod卡在Pending状态- alert: PodStuckPendingexpr: kube_pod_status_phase{phase="Pending"} == 1for: 5mlabels:severity: criticalannotations:summary: "Pod {{ $labels.pod }} stuck in Pending"description: "Pod {{ $labels.pod }} in {{ $labels.namespace }} has been Pending for 10+ minutes"# Pod处于Failed状态- alert: PodFailedexpr: kube_pod_status_phase{phase="Failed"} == 1for: 2mlabels:severity: criticalannotations:summary: "Pod {{ $labels.pod }} in Failed state"# 容器频繁重启- alert: PodCrashLoopingexpr: rate(kube_pod_container_status_restarts_total[5m]) > 0.5for: 5mlabels:severity: criticalannotations:summary: "Pod {{ $labels.pod }} crash looping"# 容器OOM被杀- alert: ContainerOOMKilledexpr: kube_pod_container_status_last_terminated_reason{reason="OOMKilled"} == 1labels:severity: criticalannotations:summary: "Container {{ $labels.container }} OOM killed"

第五步:重启promethues后,点击Alerts的页面,显示添加的告警规则

http://www.lqws.cn/news/136333.html

相关文章:

  • [AI Claude] 软件测试2
  • 互斥锁与消息队列的架构哲学
  • 网络攻防技术十三:网络防火墙
  • docker的基本命令
  • (四)docker命令—容器管理命令
  • SOC-ESP32S3部分​​​​​​​:29-乐鑫组件库的使用
  • 6个月Python学习计划 Day 14 - 异常处理基础( 补充学习)
  • Kafka broker 写消息的过程
  • UE 材质基础第三天
  • 细说C语言将格式化输出到字符串的函数sprintf、_sprintf_l、swprintf、_swprintf_l、__swprintf_l
  • MP4文件声音与视频分离
  • 网络寻路--图论
  • C语言数据结构笔记3:Union联合体+结构体取8位Bool量
  • 嵌入式常见 CPU 架构
  • 传输层协议 UDP 介绍 -- UDP 协议格式,UDP 的特点,UDP 的缓冲区
  • 激光干涉仪:解锁协作机器人DD马达的精度密码
  • [Java 基础]类,面向对象的蓝图
  • ABP-Book Store Application中文讲解 - Part 9: Authors: User Interface
  • AWS中国区IAM相关凭证自行管理策略(只读CodeCommit版)
  • Linux容器篇、第一章docker命令总结表
  • C++入门基础
  • JavaScript基础:运算符
  • 本地IP配置
  • 【电赛培训课程】电子设计竞赛工程基础知识
  • psycopg2-binary、pgvector、 SQLAlchemy、 PostgreSQL四者的关系
  • typescript中的type如何使用
  • FSC认证概述?FSC认证的核心原则与标准?FSC认证的市场价值与意义
  • QRSuperResolutionNet:一种结构感知与识别增强的二维码图像超分辨率网络(附代码解析)
  • SSH登陆Linux常见问题大全
  • RAMSUN分享全新超值型MM32F0050系列MCU