我有两个Kubernetes集群,分别代表开发和登台环境。
另外,我还将部署自定义DevOps仪表板,该仪表板将用于监视这两个集群。在此仪表板上,我将需要显示以下信息:
所有这些统计信息都必须处于群集级别,并且还最好位于每个命名空间。与之类似,如果我查询一个特定的名称空间,则必须获取该名称空间的所有资源使用情况。
因此,我的信息中心的Web服务层将向我各自集群的主节点发送服务请求,以获取此信息。
我需要做的另一件事是在DevOps仪表板中实现实时通知。每当容器发生故障时,我都需要赶上该事件并通知相关人员。
我一直在阅读,出现了很多东西:Prometheus和Metric Server。我需要两个还是一个?我在本地群集上设置了Prometheus,但找不到它公开的任何端点,这些端点可由仪表板服务调用。我也在尝试设置Prometheus AlertManager,但到目前为止它没有按预期工作。现在尝试修复它。只是想检查一下这些技术是否具有满足我要求的功能。
谢谢!
答案 0 :(得分:1)
我不知道您为什么要考虑使用自己的自定义监视系统。 Prometheus operator提供了您提到的所有功能。 您最终只会拥有自己的grafana仪表板,其中包含所有必需的信息。
如果您需要自定义通知,可以在Alertmanager中进行设置以创建正确的prometheusrules.monitoring.coreos.com
,然后在kubernetes-mixin
中找到许多预先配置的方法。
使用Alertmanager中的标签和名称空间,您可以设置正确的路由来通知负责给定部署的人员。
Do I need both or will one do?
,是的,您同时需要-Prometheus
收集并汇总指标,而Metrick server
公开了群集节点中的指标以供Prometheus抓取。
如果您对Prometheus,Alertmanger等有疑问,请考虑使用helm chart作为入口点。
答案 1 :(得分:1)
Prometheus + Grafana是一个非常标准的设置。
通过kube-prometheus安装prometheus-operator或helm将为您提供
默认情况下,Grafana,Alertmanager,node-exporter
和kube-state-metrics
均已设置为kubernetes指标。
将Alertmanager配置为do something with the alerts。 SMTP通常是第一件事,但是如果这是人们需要依赖的服务,则我建议使用某种事件管理器。
尽管仪表盘不是您的要求的一部分,但这将告诉您如何将Prometheus作为数据源进行连接。 There is docco on adding prometheus data source for grafana。
有许多prebuilt charts available to add to Grafana。也有一些charts to visualise alertmanager。
您的外部服务将不会直接使用Prometheus查询指标,而是会查询存储在群集中的Prometheus中收集的数据。要从外部访问API,您将需要设置Prometheus服务的外部路径。可以通过头盔部署中的入口控制器进行配置:
prometheus.ingress.enabled: true
如果需要,您可以对alertmanager API和grafana执行相同的操作。
alertmanager.ingress.enabled: true
grafana.ingress.enabled: true
如果证明有用,则可以通过相同的Prometheus入口将集群外部的Grafana用作仪表板。