如何监控 Pod 的 CPU/内存使用率,prometheus+grafana

一、监控 Pod 的 CPU/内存使用率的方法

1. 使用 kubectl top 命令(临时检查)
# 查看所有 Pod 的资源使用率(需安装 Metrics Server)
kubectl top pods --all-namespaces
​
# 查看指定命名空间的 Pod
kubectl top pods -n <namespace>
​
# 查看单个 Pod 的详细指标
kubectl top pod <pod-name> -n <namespace>
2. 通过 Metrics Server 获取数据

安装 Metrics Server(集群级监控核心组件):

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

查询 Pod 资源使用率

  # 查看 Pod 列表并按 CPU 排序
  kubectl get pods --sort-by=cpu
​
  # 获取指定 Pod 的详细资源使用率
  kubectl describe pod <pod-name> -n <namespace> | grep -E "^Resource|cpu|memory"

二、配置 Prometheus + Grafana 监控(长期可视化方案)

1. 部署 Prometheus(数据采集)
# 创建 Prometheus 配置文件 `prometheus.yaml`
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: prometheus
  namespace: monitoring
spec:
  serviceAccountName: prometheus
  storage:
    configMap:
      name: prometheus-storage
  scrape_configs:
    - jobName: 'kubernetes-pods'
      kubernetes_sd_configs:
        - role: pod
      relabel_configs:
        - source_labels: [__meta_kubernetes_pod_label_app]
          action: keep
          regex: my-app.*
2. 部署 Grafana(可视化界面)
# 创建 Grafana 配置文件 `grafana.yaml`
apiVersion: 1
kind: ConfigMap
metadata:
  name: grafana-datasources
  namespace: monitoring
data:
  grafana.ini: |
    [datasources]
    [datasources.prometheus]
      name = Prometheus
      type = prometheus
      url = http://prometheus-server.monitoring.svc.cluster.local:9090
​
# 部署 Grafana
kubectl apply -f https://raw.githubusercontent.com/grafana/grafana/master/k8s/deployments.yaml
3. 访问 Grafana 并配置监控面板
  1. 获取 Grafana 服务地址:

    kubectl get svc -n monitoring grafana --output=jsonpath='{.status.loadBalancer.ingress[0].hostname}'
  2. 登录 Grafana(默认账号密码:admin/admin),添加 Prometheus 数据源。

  3. 创建 Pod 监控仪表盘: • 添加新面板,选择 Prometheus 作为数据源。 • 查询语句:

      # CPU 使用率(按 Pod 名称分组)
      sum by (pod_name) (container_cpu_usage_seconds_total{container="app"} / 10^9)
    ​
      # 内存使用率(按 Pod 名称分组)
      sum by (pod_name) (container_memory_usage_bytes_total{container="app"} / 1024^3)

三、关键配置与优化

1. Prometheus 抓取 Pod 指标

启用 Pod 级别监控

# 在 Prometheus 配置中添加以下内容
scrape_configs:
  - job_name: 'kubernetes-pods'
    kubernetes_sd_configs:
      - role: pod

通过标签过滤特定 Pod

# 监控名称包含 "my-app" 的 Pod
sum by (pod_name) (container_cpu_usage_seconds_total{container="app", pod_name=~"my-app.*"})
2. Grafana 仪表盘优化

自动刷新:设置面板刷新间隔为 10s

预警规则

CPU 高负载(示例): promql rate(container_cpu_usage_seconds_total{container="app"}[5m]) > 0.8

内存不足(示例): promql container_memory_usage_bytes_total{container="app"} > 1024*1024*512 # 512MB

3. 资源限制与成本控制

为 Prometheus 设置资源限制

limits:
  cpu: '1'
  memory: '2Gi'

启用持久化存储(根据需求选择):

storage:
  persistentVolumeClaim:
    claimName: prometheus-pvc

四、验证监控效果

  1. 检查 Prometheus 数据

    curl http://prometheus-server.monitoring.svc.cluster.local:9090/api/v1/query?query=sum(container_cpu_usage_seconds_total%7Bcontainer%3D%22app%22%7D)
  2. 在 Grafana 中验证面板

         • 确保 Pod 的 CPU/内存曲线随负载变化实时更新。
         • 测试预警规则是否触发。


五、常见问题排查

现象解决方案
Prometheus 无数据1. 检查 Metrics Server 是否正常运行 2. 确认 Prometheus 配置中的 kubernetes_sd_configs 正确指向 Pod
Grafana 无法连接 Prometheus1. 检查防火墙规则 2. 确认 Prometheus 服务端口 9090 开放 3. 验证 RBAC 权限(Grafana 需要访问 Prometheus)
数据延迟调整 Prometheus 抓取间隔(默认 10s)或增加历史数据保留时间。

总结

通过 Prometheus + Grafana 可以实现:

实时监控:Pod 级 CPU/内存使用率可视化。

智能告警:基于阈值自动触发通知(集成 Alertmanager)。

历史分析:长期资源消耗趋势分析。

成本优化:根据监控数据调整 Pod 数量和资源配额。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983810.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek R1 学习笔记

DeepSeek为了方便大众的使用&#xff0c;同时提供了6个蒸馏版本 DeekSeek使用方式 1.大众方式&#xff1a; 网页版&#xff1a;DeepSeek App版&#xff1a;手机各大应用商店下载安装DeepSeek-AI智能对话助手 2.专业用户 开发者&#xff1a;调用API DeepSeek服务器 网址&a…

《从零构建企业级容器镜像生态:Harbor与Registry双星架构实战手记》

目录 一、企业级镜像中枢&#xff1a;Harbor架构深度解析 1.Harbor介绍 环境准备 2. Harbor战略部署 下载安装Harbor 关键配置文件 报错一 添加本地解析 登录测试Harbor 报错二 登录成功 测试 成功显示 二、轻量化镜像驿站&#xff1a;Registry闪电战部署 简单介…

FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解

FPGA之Usb数据传输 Usb 通信 你也许会有疑问&#xff0c;明明有这么多通信方式和数据传输&#xff08;SPI、I2C、UART、以太网&#xff09;为什么偏偏使用USB呢? 原因有很多&#xff0c;如下&#xff1a; 1. 高速数据传输能力 高带宽&#xff1a;USB接口提供了较高的数据传…

mysql中in和exists的区别?

大家好&#xff0c;我是锋哥。今天分享关于【mysql中in和exists的区别?】面试题。希望对大家有帮助&#xff1b; mysql中in和exists的区别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中&#xff0c;IN 和 EXISTS 都用于进行子查询&#xff0c;但它…

Unity摄像机跟随物体

功能描述 实现摄像机跟随物体&#xff0c;并使物体始终保持在画面中心位置。 实现步骤 创建脚本&#xff1a;在Unity中创建一个新的C#脚本&#xff0c;命名为CameraFollow。 代码如下&#xff1a; using UnityEngine;public class CameraFollow : MonoBehaviour {public Tran…

springcloud sentinel教程

‌QPS&#xff08;Queries Per Second&#xff09;即每秒查询率 TPS&#xff0c;每秒处理的事务数目 PV&#xff08;page view&#xff09;即页面浏览量 UV 访问数&#xff08;Unique Visitor&#xff09;指独立访客访问数 一、初识Sentinel 什么是雪崩问题? 微服务之间相…

【Tools】Windows下Git 2.48安装教程详解

00. 目录 文章目录 00. 目录01. Git简介02. Git参考资料03. Git安装04. Git测试05. 附录 01. Git简介 Git(读音为/gɪt/。)是一个开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核…

【Linux系统编程】初识系统编程

目录 一、什么是系统编程1. 系统编程的定义2. 系统编程的特点3. 系统编程的应用领域4. 系统编程的核心概念5. 系统编程的工具和技术 二、操作系统四大基本功能1. 进程管理&#xff08;Process Management&#xff09;2. 内存管理&#xff08;Memory Management&#xff09;3. 文…

神经网络|(十四)|霍普菲尔德神经网络-Hebbian训练

【1】引言 前序学习进程中&#xff0c;除了对基本的神经网络知识进行了学习&#xff0c;还掌握了SOM神经网络原理&#xff0c;文章链接包括且不限于&#xff1a; 神经网络|(十一)|神经元和神经网络-CSDN博客 神经网络|(十二)|常见激活函数-CSDN博客 神经网络|(十三)|SOM神经…

Hive八股

Hive八股 说一下GC模型遇到过gc调优吗yarn有哪些了解讲讲hqI转化为MR源码hbase读写流程hive数据倾斜page cache和buffer的区别和相同近来你关注了大数据生态哪些领域的发展&#xff0c;比如新的feature&#xff0c;新的领域等 Hive1Hive1hive简介2hive架构3hive与Hadoop的关系4…

Docker 部署 Graylog 日志管理系统

Docker 部署 Graylog 日志管理系统 前言一、准备工作二、Docker Compose 配置三、启动 Graylog 服务四、访问 Graylog Web 界面总结 前言 Graylog 是一个开源的日志管理平台&#xff0c;专为实时日志收集、分析和可视化设计。它支持强大的搜索功能&#xff0c;并且与 Elastics…

im即时聊天客服系统SaaS还是私有化部署:成本、安全与定制化的权衡策略

随着即时通讯技术的不断发展&#xff0c;IM即时聊天客服系统已经成为企业与客户沟通、解决问题、提升用户体验的重要工具。在选择IM即时聊天客服系统时&#xff0c;企业面临一个重要决策&#xff1a;选择SaaS&#xff08;软件即服务&#xff09;解决方案&#xff0c;还是进行私…

MySQL(单表)知识点

文章目录 1.数据库的概念2.下载并配置MySQL2.1初始化MySQL的数据2.2注册MYSQL服务2.3启动MYSQL服务2.4修改账户默认密码2.5登录MYSQL2.6卸载MYSQL 3.MYSQL数据模型3.1连接数据库 4.SQL简介4.1SQL的通用语法4.2SQL语句的分类4.3DDL语句4.3.1数据库4.3.2表(创建,查询,修改,删除)4…

同为科技智能PDU在数据中心场景的应用与解决方案

数据中心当前处于一个快速发展和技术变革的特殊时期&#xff0c;全新的人工智能应用正在重塑整个世界&#xff0c;为社会带来便捷的同时&#xff0c;也为数据中心的发展带来了新的机遇和挑战。智能算例的爆发式增长&#xff0c;对数据中心提出了大算力、高性能的新需求&#xf…

基于Asp.net的零食购物商城网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Redis|Springboot集成Redis

文章目录 总体概述本地Java连接Redis常见问题集成Jedis集成lettuce集成RedisTemplate——推荐使用连接单机连接集群 总体概述 jedis-lettuce-RedisTemplate三者的联系 jedis第一代lettuce承上启下redistemplate着重使用 本地Java连接Redis常见问题 bind配置请注释掉保护模式…

【编译器】VSCODE编译C语言

【编译器】VSCODE编译C语言 文章目录 [TOC](文章目录) 前言一、下载配置二、代码1.main.c2.lanuch3.task 三、编译运行——方法一&#xff1a;编译器运行1.编译&#xff1a;终端-运行生成任务&#xff08;ctrlshiftB&#xff09;2.运行&#xff1a;运行-启动调试&#xff08;F5…

信息安全访问控制、抗攻击技术、安全体系和评估(高软42)

系列文章目录 信息安全访问控制、抗攻击技术、安全体系和评估 文章目录 系列文章目录前言一、信息安全技术1.访问控制2.抗攻击技术 二、欺骗技术1.ARP欺骗2.DNS欺骗3.IP欺骗 三、抗攻击技术1.端口扫描2.强化TCP/IP堆栈 四、保证体系和评估1.保证体系2.安全风险管理 五、真题在…

1 、六气概念-六气内涵

复泰中医体系里&#xff0c;木火土金水&#xff0c;属于传统中医理论的5分法。 有六气&#xff1a;厥阴风木、少阴君火、少阳相火、太阴湿土、阳明燥金、太阳寒水&#xff0c;属于6分法。 五行的体系用在补虚的体系里。 六气的体系用于泻实的体系里。 一、六气概念 天有六气&a…

svn删除所有隐藏.svn文件,文件夹脱离svn控制

新建一个文件&#xff0c;取名remove-svn-folders.reg&#xff0c;输入如下内容&#xff1a; Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders" [HKEY_LOCAL_MACHINE\SOFTWARE\Class…