转载:Kubernetes(k8s)部署Promehteus
一、概述
在1.8版本以后heapster由metrics-server替代;从k8s的v1.11版本开始已经全面转向以Prometheus为核心的新监控体系架构;kube-prometheus 中包含了 prometheus 监控所用到的所有组件,当然也包含 prometheus-operator。
Helm中心仓库的PrometheusOperator Chart,在2020年9月已经不维护了,新的Chart在Prometheus Community的Repo中,叫 kube-prometheus-stack,使用时需要先添加该Repo。
heapster-》metrics-server-》prometheus-operator -》kube-prometheus-》kube-prometheus-stack
-
prometheus-operator GitHub地址
-
kube-prometheus GitHub地址
-
kube-prometheus-stack GitHub地址
1)metrics-server简介
metrics-server 通过kubelet(cAdvisor)获取监控数据,主要作用是为kube-scheduler,HPA等k8s核心组件,以及kubectl top命令和Dashboard等UI组件提供数据来源。
【注意】如果要部署prometheus,就不用部署了metrics-server了,否则冲突,推荐只部署prometheus,所以这里也只讲prometheus的部署。
2)Prometheus简介
Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包。从2012年开始,许多公司和组织开始使用Prometheus。
Prometheus的主要特征有:
-
多维度数据模型
-
灵活的查询语言
-
不依赖分布式存储,单个服务器节点是自主的
-
以HTTP方式,通过pull模型拉去时间序列数据
-
也通过中间网关支持push模型
-
通过服务发现或者静态配置,来发现目标服务对象
-
支持多种多样的图表和界面展示,grafana也支持它
组件
Prometheus生态包括了很多组件,它们中的一些是可选的:
-
主服务Prometheus Server负责抓取和存储时间序列数据
-
客户库负责检测应用程序代码
-
支持短生命周期的PUSH网关
-
基于Rails/SQL仪表盘构建器的GUI
-
多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式
-
警告管理器
-
命令行查询工具
-
其他各种支撑工具
3)Prometheus Operator
Prometheus Operator的本职就是一组用户自定义的CRD资源以及Controller的实现,Prometheus Operator负责监听这些自定义资源的变化,并且根据这些资源的定义自动化的完成如Prometheus Server自身以及配置的自动化管理工作。以下是Prometheus Operator的架构图: