一般,我们从网上看到的帖子和资料,

都是用prometheus监控k8s的各项资源,

如api server, namespace, pod, node等。

那如果是自己的业务pod上的自定义metrics呢?

比如,一个业务pod开放了/xxx/metrics,

那么,如果用prometheus来抓取呢?

这里,我们就会用到kubernetes-pods这样一个job。

然后,在业务的deployment中,加annotation来配合抓取配置。

如下:

prometheus-configmap-pod.yaml

apiVersion: v1
kind: ConfigMap
metadata:name: prometheus-confignamespace: ns-monitor
data:prometheus.yml: |global:scrape_interval:     15sevaluation_interval: 15sscrape_configs:- job_name: 'kubernetes-pods'kubernetes_sd_configs:- role: podrelabel_configs:- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]action: keepregex: true- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]action: replacetarget_label: __metrics_path__regex: (.+)- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]action: replaceregex: ([^:]+)(?::\d+)?;(\d+)replacement: $1:$2target_label: __address__- action: labelmapregex: __meta_kubernetes_pod_label_(.+)- source_labels: [__meta_kubernetes_namespace]action: replacetarget_label: kubernetes_namespace- source_labels: [__meta_kubernetes_pod_name]action: replacetarget_label: kubernetes_pod_name

上面yaml文件中source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path],

这样的relabel含义就是:

如果在业务pod中,annotation定义了prometheus.io/path,那么,prometheus就可以抓取其自定义的metrics。

如,一个业务deployments定义如下:

apiVersion: apps/v1
kind: Deployment
metadata:name: gwnamespace: default
spec:replicas: 3selector:matchLabels:name: gwtemplate:metadata:labels:name: gwannotations:prometheus.io/path: /xxx/metricsprometheus.io/port: "32456"prometheus.io/scrape: "true"spec:imagePullSecrets:- name: dockersecretcontainers:- name: gw
......

那么,prometheus server加载prometheus.yml文件之后,

就会去抓取每个业务pod的pod:32456/xxx/metrics的监控数据了。

转载于:https://www.cnblogs.com/aguncn/p/9843175.html

如何用prometheus监控k8s集群中业务pod的metrics相关推荐

  1. 使用Prometheus监控kubernetes集群

    一键安装(网络可访问quay.io): kubectl apply --filename https://raw.githubusercontent.com/giantswarm/kubernetes ...

  2. rancher2.x设置邮件通知,使用163邮箱来接收k8s集群中的报警信息以及来自rancher的通知信息

    之前搭建了几个k8s集群然后使用了rancher来管理多个k8s集群,之前选择使用rancher主要是考虑从rancher应用商店中安装部署各种服务比较方便.但是,在我部署安装efk服务的时候(我自己 ...

  3. 终于解决 k8s 集群中部署 nodelocaldns 的问题

    终于解决 k8s 集群中部署 nodelocaldns 的问题 参考文章: (1)终于解决 k8s 集群中部署 nodelocaldns 的问题 (2)https://www.cnblogs.com/ ...

  4. K8S集群中Pod挂载Storageclass存储卷异常排查思路

    K8S集群中Pod挂载Storageclass存储卷异常排查思路 故障描述: Jenkins是在K8S集群中部署的,Jenkins使用的各种资源以及全部创建了,但是Jenkins的Pod依旧无法启动, ...

  5. K8S集群中Pod资源处于CrashLoopBackOff状态排查思路

    K8S集群中Pod资源处于CrashLoopBackOff状态排查思路 文章目录 K8S集群中Pod资源处于CrashLoopBackOff状态排查思路 1.Pod资源处于CrashLoopBackO ...

  6. K8S集群中Pod与Pod之间网络故障排查思路

    K8S集群中Pod与Pod之间网络故障排查思路 文章目录 K8S集群中Pod与Pod之间网络故障排查思路 1.Pod与Pod之间通信故障 2.Pod与Pod之间网络通信故障排查思路 1.Pod与Pod ...

  7. K8S集群中Pod资源常见的异常状态以及排查思路

    K8S集群中Pod资源常见的异常状态以及排查思路 1.Pod资源的结构 Pod资源中会有一个基础容器Pause容器,每一个Pod资源下都会有一个Pause容器,Pause容器负责创建一个虚拟网络和存储 ...

  8. K8S集群中Pod资源数据丢包排查思路

    K8S集群中Pod资源数据丢包排查思路 Pod资源可能会由于网络原因产生丢包的现象. 当Pod资源存在丢包的现象时,会出现下面的报错: Connect to 100.111.156.74 port 5 ...

  9. K8S集群中Pod资源处于Terminating或Unknown状态排查思路

    K8S集群中Pod资源处于Terminating或Unknown状态排查思路 文章目录 K8S集群中Pod资源处于Terminating或Unknown状态排查思路 1.Pod资源处于Terminat ...

  10. K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

    K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 文章目录 K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 1.Node节点资源不足可能会产生的故障 2.Node节点 ...

最新文章

  1. mongodb权限管理
  2. php删除上传图片,PHP上传图片、删除图片的简单示例代码
  3. 【ubuntu工具】Atom的简介及安装
  4. 怎么将两个datatable 合并_视频音频合并大师免费版-视频音频合并大师2020版下载(附使用方法) v2020.02.08...
  5. [转贴]ASP优化之显示数据查询内容
  6. Eclipse-cdt 配合 gdbserver 进行 arm 程序远程调试
  7. 黑马程序员_java基础笔记(15)...银行业务调度系统_编码思路及代码
  8. OpenCV与图像处理学习十一——分水岭算法(含代码)
  9. c语言心形编程代码_做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码...
  10. 课文电子计算机与多媒体减写,课文电子计算机与多媒体关系介绍
  11. android 电影院订票系统 论文,基于Android平台的电影票订票系统的设计与实现
  12. re2020 bt2020_2020年最好的4个在线学习平台
  13. 基于SSH的客户关系管理系统
  14. no ip domain-lookup 是什么意思?
  15. linux vi编辑(20160628)
  16. java高并发解决方案
  17. 85程序锁的工作原理
  18. 【Tableau 图表大全1.0】之条形图
  19. vs中c语言wasd方向键需要按回车_二十多年前,根本没人用WASD玩游戏
  20. CADD之分子对接一:背景介绍

热门文章

  1. java画图中运用缓冲解决屏幕闪烁方案二
  2. python课程报告模板_Python制作WORD报告
  3. 电脑连接电视方法详解_笔记本连接电视有哪些设置方法
  4. yum安装php解析,详解Centos下YUM安装PHP的两种方式
  5. C# 通过反射获取枚举类型
  6. go - const
  7. Java课设对对碰_java实现对对碰小游戏
  8. Collectors.summingDouble()
  9. 安卓 获取rtsp流 截屏_华为手机这5种截屏方法,你都会用吗?现在知道也不亏...
  10. 【渝粤教育】国家开放大学2019年春季 455物流实务 参考试题