4

我已经阅读了一些关于监控 k8s 的页面,我发现了 kubernetes_sd_config(在 prometheus 中)、metrics-server(代替了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-state-metrics 是否仅适用于 k8s 中的对象(pod、deployment...)?
  5. 他们各自的目标是什么?
4

1 回答 1

4

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是配置文件,定义了与抓取目标相关的所有内容。

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

于 2019-07-05T13:37:37.880 回答