【问题标题】:What is the difference among kubernetes_sd_config (within prometheus) and metrics-server and kube-state-metrics?kubernetes_sd_config(在prometheus内)与metrics-server和kube-state-metrics有什么区别?
【发布时间】:2019-07-05 13:02:48
【问题描述】:

我阅读了一些关于监控 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. 各自的目标是什么?

【问题讨论】:

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


    【解决方案1】:

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

    Kubelet 导出一个“汇总”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 是配置文件,定义了与抓取目标相关的所有内容。

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

    【讨论】:

    • 感谢您的回复。那么,kubernetes_sd_config(在 prometheus 内)能否提供我可以使用 metrics-server 和 kube-state-metrics 获得的所有数据?
    • 是的,这些目标提供了大部分数据。你想报废什么样的数据?你的用例是什么?
    • 我只是在寻找针对 k8s 监控的解决方案。现在,我知道prometheus中的kubernetes_sd_config就足够了。如果需要“kubectl top xxx”,那么 metrics_server 就在这里。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-27
    • 2021-01-30
    相关资源
    最近更新 更多