kubernetes_sd_config(在prometheus中)与metrics-server和kube-state-metrics有什么区别?

时间:2019-07-05 13:02:48

标签: kubernetes prometheus metrics monitor kube-state-metrics

我已经阅读了一些有关监视k8的页面,发现 kubernetes_sd_config (在prometheus内), metrics-server < / strong>(代替 heapster 的位置)和 kube-state-metrics 。它们都可以提供指标,但是有什么区别?

  1. kubernetes_sd_config(在prometheus内)是否提供我可以使用metrics-server和kube-state-metrics获得的所有数据?
  2. kubernetes_sd_config是否足以监视?
  3. metrics-server是否仅用于向内部组件(例如hpa控制器)提供数据(小于kubernetes_sd_config)?
  4. kube状态度量仅用于k8s中的对象(吊舱,部署...)吗?
  5. 他们各自的目标是什么?

1 个答案:

答案 0 :(得分:2)

1 Metrics-server是一个群集级别的组件,它通过Summary API定期从Kubelet服务的所有Kubernetes节点中抓取容器CPU和内存使用情况指标。

Kubelet导出一个“摘要” API,该API汇总了所有pod的统计信息。

$ kubectl proxy &
Starting to serve on 127.0.0.1:8001
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}")
$ curl localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/summary

用例:

  • 水平Pod自动缩放器:
  • kubectl top --help:命令

2 kube-state-metrics

  

专注于从Kubernetes的对象状态生成全新的指标(例如基于部署,副本集等的指标)。它在内存中保存了Kubernetes状态的完整快照,并基于该快照不断生成新的指标

用例

  • 计算k8s个对象的数量。
  • 有多少个名称空间?

sysdig-k8s-state-metrics提供进一步的信息。

3 Prometheus Node_Exporter -获取主机级矩阵并将其公开给Prometheus。

用例

  • 用户和内核空间级别信息

最后,kubernetes_sd_config是配置文件定义了与抓取目标有关的所有内容。

您可以在配置文件中决定要收集哪些信息以及从谁那里收集信息。