我想监控我的Kubernetes服务对象,以确保他们有> 0处于“正在运行”状态的后面的窗格。
但是,要做到这一点,我必须首先按服务对Pod进行分组,然后按状态进一步分组。
我还想以编程方式执行此操作(例如,对于命名空间中的每个服务...)
已经有一些代码在Sensu kubernetes插件中执行此操作:https://github.com/sensu-plugins/sensu-plugins-kubernetes/blob/master/bin/check-kube-service-available.rb但我没有看到任何显示如何使用Prometheus执行此操作的代码。
有没有人与普罗米修斯一起设置kubernetes服务水平健康检查?如果是这样,您是如何按服务分组然后按Pod状态分组的?
答案 0 :(得分:3)
我见过的Prometheus服务检查的例子依赖于blackbox导出器:
blackbox导出器将尝试服务上的给定URL。如果成功,则至少有一个pod已启动并正在运行。
请参阅此处的示例:作业kubernetes-service-endpoints中的https://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml
要探测的URL可能是您的活动探测器或其他内容。如果您的服务不谈论HTTP,您也可以让黑盒出口商测试其他协议。