一、Prometheus Operator & Kube-Prometheus & Helm chart 部警区别
Prometheus Operator是 Kubernete 原生的工具,它通过 Prometheus 资源定义为 Kubernete 对象 (CRD) 来简化 Prometheus 集理的管理,它自动化了在 Kubernetes 中配置和扩展 Prometheus 实例时涉及的常见任务,并提供了在 Kubernetes 环境中部、配置和管理 Prometheus 的简单方式。
1.通过 kubectl 或 Kubernetes APl 创 Prometheus Operator Custom Resource Definition (CRD). 0 o
2使用 kubectl或YAML 文件创理 Prometheus 实例的定义
3.Prometheus Operator 观察配置更改并创建、更新或别除 Prometheus 实例
官方安装文档: https://prometheldev/docs/userguides/getting-started/ 需要Kubernetes版本至少在v1.16.x以上
官方Github地址: operator/promerheus.operator
kube-prometheus提供其于Prometheus & Prometheus Operator完数的集的监控置示例,包括多实例Prometheus & Alertmanaer部要与配置及nod exporter的metrics采集,以及scrape Prometheus target各种不同的metrics endpoints,并提供Alerting rules-些示例,发告警集群潜在的问题,
1.使用YAML文件或 Helm chart 安装 Kube-Prometheus.
2,Kube-Prometheus 部署 Prometheus、Alertmanager、Grafana和 Pushgateway等组性.
3.使用 Prometheus Operator 观家和管理 Prometheus 和相关组件 。
官方安装文档: https://prometheus/prologue/quick-start/
安装要求: https://eithub.com/promet s.operator/kube.prometheusfcompatibillity
官方Githubbit: https://eithub.com/prometheus-operator/kube.prometheus helm chart orometheus-communiy/kub prometheus-stack 提供类似
kube:prometheus的功能,但是该项目是由Prometheus-community来维护
1.安装 Helm 并添加 Prometheus Helm chart 存储库
2.使用Helm 安装Prometheus chart,包括Prometheus、Alertmanager和Pushgateway等组件 。
https//eithub,com/orometheus community/helm-charts/ree/main/tharts/kube.prometheus stack#kube prometheus stack
总结:三者部署 Prometheus 的区别
Prometheus Operator 可以更加自动化的管理 Prometheus 集群
Kube-Prometheus 则提供了更加全面的监控解决方案,包活 Prometheus、Grafana和Alertmanager 等组件:
Helm chart 则通过一个命令即可快速部署 Prometheus 及其相关组件,但无法方便地进行各个组件的管理
Kube-Prometheus:目前是k8s集监控的主流项目,主要使用Prometheus做集就监控使用Prometheus Operator做监按的运管理,也就是以上二者的结合
二、Prometheus-Operator CRD资源
2.1、CRD 全称是 Custom Resource Definition
什么是CRD?
以 Deplovment 为实例,Deplvment 没有置接创 POd,而是管现 RS,而 RS 管现Pod,这就是控制器港式,控制图模式允许基于已有的资源定义更高阶的控制器,用来实现更复杂的能力。
特点:
CRD 本身是 Kubernetes 的一种资源,允许用户自定义新的资源类型:
CRD 允许用户甚于已有的 Kubernetes 资源,例如 Deployment、Configmap 等,拓展集群能力;
CRD 可以自定义一套成体系的规范,自造概念:
CRD 本身是一种 Kubernetes 内置的资源类型,即自定义资源的定义,用于描述用户定义的资源是什么样子
2.2、Prometheus-Operator CRD
Prometheus operator 的本职就是-用户自定义的RD资源以及ontroller 的实现,Prometheus perator 负责监听这些自定义资源的变化,并旦根据这些
资源的定义自动化的完成如Prometheus Server 自以及配置的自动化营理工作,主要包括以下几个功能:
·Kubernetes 自定义资源: 使用 Kubernetes CRD 来部署和管理 Prometheus、Alertmanager 和相关组件
。简化的部署配置:直接通过 ubernetes 资源清单配置 Prometheus,比如版本、持久化、副本、保留策略等等配置
Prometheus 监控目标配置: 基于熟知的 ubernetes 标签查询自动生成监控目标配置,无学习 Prometheus 等地的配置
三、部署 Kube-Prometheus
3.1、概述
kubeprometheus 是一整套监控解决方案,它使用 Prometheus 采集集群指标,Grafana 做展示,包含如下组件:
The Prometheus Operator
Highly available Prometheus
Highly available Alertmanager
Prometheus node-exporter
Prometheus Adapter for Kubernetes Metrics APIs (k8sprometheus-adapter)
kubestate-metrics
Grafana
注意: kube-promethues与kubernetes的版本对应关系如下:
prometheus-operator/kube-prometheus: Use Prometheus to monitor Kubernetes and applicatons runnine on Kubernetes (eithub .com
3.2、下载 Kube-Prometheus 代码
方法一:
方法二:
3.3、修改 Kube-Prometheus 镜像源
国外镜像源某些镜像无法拉取,我们这里修放prometheus-operator,prometheus,alertmanager, kube-state-metrics,node-exporter, prometheus.adapter的境像源为国内境像源。这里使用的是中科大的镜像源。
3.4、安装operator & kube-Prometheus
创建namespace & CRD资源,如下:setup 文件央中包含所有自定义资源配置 CustomResourceDefinition (一般不用修改,也不要轻易修改)
需要关注的几个控制器文件:
删除所有资源:
3.5、配置Ingress盗源对象
四、访问验证
4.1、prometheus
两个Prometheus实例的,Service 添加 sessinAfinity: (lientlP 属性,会 (lientlp 来做 esion 亲和性,所以我们不用担心请求会到不同的副本上去
4.2、granfana
4.3、alertmanager
五、总结
Prometheus整体监控结构略微复杂,一个个部署并不简单,kube-prometheus大大提升了部署的方式;
通过自定义资源CRD维护简单,不用再次维护大量的confgmap配置文件,操作流程大大简化;
Kube-Prometheus 则提供了更加全面的监控辉决方案,包括 Prometheus、Grafana和Alertmanager 等组件;
CoreOS主推Kube-Prometheus,目前是k8s集群监控的主流项目