Prometheus - Installation


Prometheus - Installation

https://prometheus-operator.dev/

Prometheus Operator

功能

自定义资源类型,用于部署rometheus、AlertManager等组件

简化部署配置,从 Kubernetes 资源配置 Prometheus 相关功能,例如版本、持久性、保留策略。

简化监控目标配置,基于 Kuberentes 标签查询自动生成监控目标,动态服务发现。


安装

Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm fetch prometheus-community/kube-prometheus-stack

helm install -f values.yaml prometheus-stack prometheus-community/kube-prometheus-stack -n monitor


YAML:

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

cd kube-prometheus && git checkout v0.7.0

# 创建 Operator 及 CRD

kubectl apply -f manifests/setup

until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done

# 等待前置条件(Operator 及 CRD )完成后在进行部署资源对象

kubectl apply -f manifests/

架构

Prometheus - Installation

Operator 作为控制器首先会创建 Prometheus、ServiceMonitor、AlertManager、PrometheusRule等资源对象,然后会一直 Watch 这些资源对象的事件变化从而做出修正。


Prometheus

该 CRD 声明 Prometheus 在 Kubernetes 集群中运行的配置,例如持久化、副本数量等。

Operator 通过在指定的命名空间以 StatefulSet 形式部署对应资源,并且挂载同名的 Secret 对象为的配置。

根据 ServiceMonitor 生成监控目标配置,并且在 Secret 对象中更新。


ServiceMonitor

该 CRD 声明 Prometheus 如何监控一组动态的服务,使用标签进行选择那些 Service 进行监控。

按照定义的规则进行发现新的服务,从而无需重新配置。

利用 Service 中的 EndPoint 字段填充在 Prometheus Scrape Target 从而收集监控指标。


PodMonitor

该 CRD 声明 Prometheus 如何监控一组动态的 Pods,使用标签进行选择那些 Pods 进行监控。

按照定义的规则进行发现新的 Pods,从而无需重新配置。

发现的目标可以来自于任何的命名空间,PodMonitorSpec: namespaceSelector 进行约束命名空间。

与 ServiceMonitor 区别就是不需要 Service 资源对象,针对 Pods 标签进行选择。


PrometheusRule

该 CRD 声明 Prometheus 监控指标的告警规则,包括 Recording Rules 及 Alerting。

AlertManager

该 CRD 声明 AlertManager 在 Kubernetes 集群中运行的配置,例如持久化、副本数量等。

Operator 通过在指定的命名空间以 StatefulSet 形式部署对应资源,并且挂载同名的 Secret 对象为的配置。


AlertmanagerConfig

该 CRD 声明 AlertManager 如何去进行告警或者抑制,包括 Route、Receviers。

按照定义的规则进行推送到邮件、微信、钉钉、短信、电话等。


上一篇:YOLOV5训练自己数据集


下一篇:HDS Namenode HA高可用搭建