文章目录

  • Prometheus Operator
    • Operator模式
    • Prometheus CRD
  • 部署Prometheus Operator
    • 1. 下载Prometheus Operator
    • 2. images
    • 3. 创建被监控应用
    • 4. prometheus pod RBAC
    • 5. Prometheus 对象
    • 6. 观察Target
  • 卸载prometheus operator

来自 Prometheus Operator Get Started实验记录

Prometheus Operator

  • https://prometheus-operator.dev/docs/prologue/quick-start/

Operator模式

Operator模式是用户声明一个状态,一个控制器循环检测,直到目标达到状态。在kubernetes原生生态里,控制器
只能控制Deployment,Service etc 原生资源对象,而Core OS公司通过扩展kubernetes使得用户可以自定义控制器来控制kubernetes CRD(自定义资源对象)的状态。

Prometheus Operator的能够根据CRD对象自动生成Prometheus的scrape配置。

因此不需要每次修改prometheus.yaml中的配置,杀死Pod,进行重启使得配置生效。只需要像原来修改deployment.yaml,重新apply一下,控制器不断循环操作使得配置生效。

Prometheus CRD


通过在原生Service对象上添加Label,CRD ServiceMonitor会通过Label选择Service. Operator会根据 ServiceMonitor配置生成Prometheus的prometheus.yaml配置。

CRD ServiceMonitor对象也会有label,划分不同的监控组,Prometheus对象通过Label选择ServiceMonitor对象。

部署Prometheus Operator

1. 下载Prometheus Operator

git clone https://github.com/prometheus-operator/kube-prometheus.git

然后使用预编译好的yaml文件。

Operator使用jsonnet,一种json模板框架来渲染生成yaml文件,生成的文件在manifest文件夹

# Create the namespace and CRDs, and then wait for them to be availble before creating the remaining resources
kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/

2. images

部分镜像被墙

  • image list
docker pull bitnami/kube-state-metrics:2.3.0
docker pull selina5288/prometheus-adapter:v0.9.1
  • tag list
docker tag bitnami/kube-state-metrics:2.3.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0
docker tag selina5288/prometheus-adapter:v0.9.1 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1

3. 创建被监控应用

apiVersion: apps/v1
kind: Deployment
metadata:name: example-app
spec:replicas: 3selector:matchLabels:app: example-apptemplate:metadata:labels:app: example-appspec:containers:- name: example-appimage: fabxc/instrumented_appports:- name: webcontainerPort: 8080
---
kind: Service
apiVersion: v1
metadata:name: example-applabels:app: example-app
spec:selector:app: example-appports:- name: webport: 8080
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:name: example-applabels:team: frontend
spec:selector:matchLabels:app: example-appendpoints:- port: web

4. prometheus pod RBAC

为了可以访问到default 命名空间的权限。

apiVersion: v1
kind: ServiceAccount
metadata:name: prometheus
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: prometheus
rules:
- apiGroups: [""]resources:- nodes- nodes/metrics- services- endpoints- podsverbs: ["get", "list", "watch"]
- apiGroups: [""]resources:- configmapsverbs: ["get"]
- apiGroups:- networking.k8s.ioresources:- ingressesverbs: ["get", "list", "watch"]
- nonResourceURLs: ["/metrics"]verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: prometheus
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects:
- kind: ServiceAccountname: prometheusnamespace: default

5. Prometheus 对象

一个Prometheus对象通过serviceMonitorSelector定义包含哪个ServiceMonitors

上面的ServiceMonitors 指定了标签team: frontend,所以在Prometheus对象中选择这个标签。

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:name: prometheuslabels:prometheus: prometheus
spec:replicas: 2serviceAccountName: prometheusserviceMonitorSelector:matchLabels:team: frontend  # 在Prometheus对象中选择 team: frontend 标签alerting:alertmanagers:- namespace: defaultname: alertmanagerport: web

6. 观察Target

为了确定prometheus收集到了example应用的指标,查看prometheus的target列表:


使用grafana观察效果:

# example app每秒CPU分片占比
rate(process_cpu_seconds_total{namespace="default",job="example-app"}[1m])*100

卸载prometheus operator

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

Prometheus Operator开始相关推荐

  1. 在Kubernetes上使用Prometheus Operator监视应用程序

    您可以使Prometheus配置了解您的应用程序在其中运行的Kubernetes环境.在先前的博客文章中 ,我已经描述了如何手动执行该操作. Prometheus Operator是Kubernete ...

  2. Hands-on Lab (15) - 使用Prometheus Operator监控应用

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 文章目录 监控OpenShift集群 监控应用 部署被监控的应用 通过Operator ...

  3. Prometheus Operator + blackbox_exporter 监控Web页面

    背景 目前生产环境使用Zabbix自带的web监控模块对所有子优鸟页面进行监控,由于目前Zabbix服务器为单节点,经常出现取不到web监控数据的情况.现将web监控迁移到Prometheus上. 但 ...

  4. Kubernetes更优雅的监控工具Prometheus Operator

    Kubernetes更优雅的监控工具Prometheus Operator [TOC] 1. Kubernetes Operator 介绍 在 Kubernetes 的支持下,管理和伸缩 Web 应用 ...

  5. Prometheus Operator 配置PrometheusRule告警规则

    PrometheusRule 用于配置 Prometheus 的 Rule 规则文件,包括 recording rules 和 alerting,可以自动被 Prometheus 加载. 配置 Pro ...

  6. Prometheus Operator 部署

    安装 为了使用 Prometheus-Operator,这里我们直接使用 kube-prometheus 这个项目来进行安装(提供了很多的内置规则,可以直接拿来使用),该项目和 Prometheus- ...

  7. Prometheus Operator概述

    在前面,我们单纯手工管理Prometheus还是复杂一些,因为它有很多东西需要我们去维护,特别是当有很多指标的时候需要我们去手工抓取和配置. 前面我们用自定义的方式来对 Kubernetes 集群进行 ...

  8. k8s部署Kube Prometheus(Prometheus Operator)

    摘要 本文通过Prometheus-operator框架一键化安装prometheus.alertmanage.granfana,并配置企业微信api以及告警推送,搭建 prometheus 的前提环 ...

  9. Prometheus Operator(五) 修改数据存储时间

    Prometheus Operator(五) 修改数据存储时间 前面说了prometheus operator持久化的问题,但是还有一个问题很多人都忽略了,那就是prometheus operator ...

  10. Prometheus Operator 通过additional 添加target

    前言 Proms Operator 添加自定义监控可以通过如下两种方式实现,本文是 additional 方式. additional 方式 serviceMonitor方式 官网 安装参考这个专栏里 ...

最新文章

  1. 在CentOS 6.8上安装Nginx
  2. C++实现读取指定文件夹下的所有文件
  3. 混合密度网络(MDN)进行多元回归详解和代码示例
  4. Webpack中的sourcemap
  5. Java实现算法导论中Pollard的rho启发式方法
  6. IT 巡检内容、方法大全
  7. 基于计算机网络的可持续发展信息共享情况调查
  8. [视频教程] ubuntu系统下安装最新版PHP7.3.X环境
  9. 让执行程序引用特定目录下的Dll
  10. 技术分享 | 基于EOS的Dapp开发
  11. IQ数据简介:I/Q Data
  12. Spring Cloud学习(一)
  13. 使用 bibexcel 把.out 文件转换成 .net 文件
  14. Python源码学习笔记:Python万物皆对象
  15. 新浪UC,這些人你咋就不管?
  16. html 的smap标签,SMap.Label
  17. nginx-GET /favicon.ico HTTP/1.1
  18. java综合知识点总结-必背
  19. Linux隔离网络,linux – 隔离网络上的单个NTP服务器
  20. 移动端测试=== 两个概念 内存泄漏 和 内存溢出 【转】

热门文章

  1. matlab 窄带通,MATLAB 窄带随机过程
  2. kears编写CNN网络,实现对mnist的识别
  3. 泛函分析 01.03 距离空间-开集和连续映射
  4. matlab-俄罗斯方块小游戏
  5. VBA 把电信的电话费用表转换成部门电话费用明细表(图文)
  6. c语言启动程序句柄无效,win7系统玩英雄联盟突然弹出“句柄无效”窗口的解决方法...
  7. vue-router
  8. 暗黑模式?安卓适配一波
  9. android短视频列表自动播放,手把手教你实现视频列表滚动自动播放-短视频列表滚动播放实战...
  10. vue 挑战最强大脑 记忆力5分 观察力5分 推理力4分