幽门梗阻

注册

 

发新话题 回复该主题

Kubernetes集群监控kube [复制链接]

1#
北京好治疗皮肤科医院 http://m.39.net/pf/a_6171978.html
一、背景介绍

前面我们一起配置了如何在kube-prometheus下面新增一个监控项Kubernetes集群监控ETCD组件。如果我们在Kubernetes集群中有了很多的Service和Pod,那么我们都得一个一个的去建立一个对应的ServiceMonitor对象来进行监控吗?这样岂不是又变得很繁琐起来了?

答案「否定的」,我们可以通过prometheus的自动发现功能轻松解决这个问题。

二、什么是服务发现?

我们在每个节点上面都运行了node-exporter,如果我们通过一个Service来将数据收集到一起用静态配置的方式配置到Prometheus去中,就只会显示一条数据,我们得自己在指标数据中去过滤每个节点的数据,当然我们也可以手动的把所有节点用静态的方式配置到Prometheus中去,但是以后要新增或者去掉节点的时候就还得手动去配置,那么有没有一种方式可以让Prometheus去自动发现我们节点的node-exporter程序,并且按节点进行分组呢?这就是Prometheus里面非常重要的「服务发现」功能。

Prometheus支持多种服务发现机制:文件、DNS、Consul、Kubernetes、OpenStack、EC2等。基于服务发现的过程并不复杂,通过第三方提供的接口,Prometheus查询到需要监控的Target列表,然后轮训这些Target获取监控数据,下面主要介绍Kubernetes服务发现机制。

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

三、规则解析

为解决服务发现的问题,kube-prometheus为我们提供了一个额外的抓取配置来解决这个问题,我们可以通过添加额外的配置来进行服务发现进行自动监控。我们可以在kube-prometheus当中去自动发现并监控具有prometheus.io/scrape=true这个annotations的Service。

配置项规则参考链接:

分享 转发
TOP
发新话题 回复该主题