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

What is the difference among kubernetes_sd_config (within prometheus) and metrics-server and kube-state-metrics?

我看了一些关于监控k8s的页面,我发现kubernetes_sd_config(在prometheus中),metrics-server(取代了 heapster)和 kube -状态指标。他们都可以提供指标,但有什么区别呢?

  1. kubernetes_sd_config(在 prometheus 中)是否提供了我可以使用 metrics-server 和 kube-state-metrics 获得的所有数据?
  2. kubernetes_sd_config 监控够用吗?
  3. metrics-server 是否仅用于向内部组件(如 hpa 控制器)提供数据(小于 kubernetes_sd_config)?
  4. kube-state-metrics 是否只针对 k8s 中的对象(pod、deployment...)?
  5. 各自的目标是什么?

1 Metrics-server 是一个集群级别的组件,它通过摘要 API.

Kubelet 导出一个“摘要”API,汇总所有 pods 的统计数据。

$ 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

Use-Cases:

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

2 kube-state-metrics

is focused on generating completely new metrics from Kubernetes' object state (e.g. metrics based on deployments, replica sets, etc.). It holds an entire snapshot of Kubernetes state in memory and continuously generates new metrics based off of it

Use-Cases

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

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

3 Prometheus Node_Exporter - 获取主机级矩阵并将它们暴露给普罗米修斯。

Use-Cases

  • 用户和内核 Space 级信息。

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

您可以在配置文件中决定要收集什么样的信息以及从谁那里收集。