#yyds干货盘点#Prometheus 之 Kubernetes 监控

知识的价值不在于占有,而在于使用。这篇文章主要讲述#yyds干货盘点#Prometheus 之 Kubernetes 监控相关的知识,希望能为你提供帮助。
Prometheus Operator 架构
【#yyds干货盘点#Prometheus 之 Kubernetes 监控】
架构中的各组成部分以不同的资源方式运行在 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 的应用。



    推荐阅读