写点什么

23 Prometheus 之 Kubernetes 监控

  • 2022 年 1 月 23 日
  • 本文字数:820 字

    阅读完需:约 3 分钟

23 Prometheus 之Kubernetes监控

Prometheus Operator 架构

架构中的各组成部分以不同的资源方式运行在 Kubernetes 集群中,它们各自有不同的作用。

  • Operator:Operator 资源会根据自定义资源(Custom Resource Definition,CRD)来部署和管理 Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。

  • Prometheus:Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。·

  • Prometheus Server:Operator 根据自定义资源 Prometheus 类型中定义的内容而部署的 Prometheus Server 集群,这些自定义资源可以看作用来管理 Prometheus Server 集群的 StatefulSets 资源。

  • ServiceMonitor:ServiceMonitor 也是一个自定义资源,它描述了一组被 Prometheus 监控的 target 列表。该资源通过标签来选取对应的 ServiceEndpoint,让 Prometheus Server 通过选取的 Service 来获取 Metrics 信息。

  • Service:Service 资源主要用来对应 Kubernetes 集群中的 Metrics Server Pod,提供给 ServiceMonitor 选取,让 Prometheus Server 来获取信息。简单说就是 Prometheus 监控的对象,例如 Node Exporter Service、Mysql ExporterService 等。

  • Alertmanager:Alertmanager 也是一个自定义资源类型,由 Operator 根据资源描述内容来部署 Alertmanager 集群。


在 Kubernetes Node 上部署 Node exporter,获取该节点物理机或者虚拟机的监控信息,在 Kubernetes Master 上部署 kube-state-metrics 获取 Kubernetes 集群的状态。所有信息汇聚到 Prometheus 进行处理和存储,然后通过 Grafana 进行展示。


Kubernetes 下,Prometheus 通过与 Kubernetes API 集成主要支持 5 种服务发现模式:Node、Service、Pod、Endpoints、Ingress不同的服务发现模式适用于不同的场景,例如:node 适用于与主机相关的监控资源,如节点中运行的 Kubernetes 组件状态、节点上运行的容器状态等;service 和 igress 适用于通过黑盒监控的场景,如对服务的可用性以及服务质量的监控;endpoints 和 pod 均可用于获取 Pod 实例的监控数据,如监控用户或者管理员部署的支持 Prometheus 的应用。


用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
23 Prometheus 之Kubernetes监控