【问题标题】:How to decrease CPU load aggregation to 1s instead of 10s in cAdvisor?如何在 cAdvisor 中将 CPU 负载聚合减少到 1 秒而不是 10 秒?
【发布时间】:2018-08-02 18:32:38
【问题描述】:

我正在使用 Kubernetes 最新版本(多节点集群上的裸机),我可以使用 Kubernetes 指标 API 获取 cAdivsor 指标。我可以看到 cAdvisor 提供了container_cpu_load_average_10s 度量,从它的名字看,它是 10 秒内 CPU 负载的聚合。

有什么办法可以将aggregation/granularity 时间缩短到 1 秒? (有container_cpu_load_average_1s之类的东西)

P.S:我使用的 API Endpoint 是 https://<my_k8s_ip>:6443/api/v1/nodes/kubernetes3/proxy/metrics/cadvisor

更新:我刚刚发现有一个 --housekeeping_interval 参数,但需要确定它是否是可行的方法,如果是,那么如何在我当前的 Kubernetes 部署中更改它.任何建议将不胜感激。

【问题讨论】:

    标签: performance docker kubernetes monitoring cadvisor


    【解决方案1】:

    实际上,您不需要更新您的部署。 --housekeeping_intervalkubelet 的参数。您只需将--housekeeping_interval=1s 添加到kubelet 的启动脚本中即可。启动kubelet 的配置文件通常位于/etc/systemd/system/kubelet.service.d/10-kubeadm.conf。 只需更新字符串:

    ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS --housekeeping_interval=1s
    

    在末尾添加--housekeeping_interval=1s,然后重启kubelet。您需要在所有节点上执行此操作。

    【讨论】:

    • 是的@Nick 我几分钟前才得到这个解决方案。但我不确定它是否真的对最终结果有任何影响? 我的意思是 cAdvisor 输出似乎仍然每 10 秒更新一次......仍在测试中
    • @Michel Gokan cAdvisor 在 kubelet 中编译,它必须影响它,但你应该将它添加到集群中的所有 kubelet。并且不要忘记重启 kubelet
    【解决方案2】:

    我们应该在10-kubeadm.conf中设置两个参数:

    1. --enable-load-reader
    2. --housekeeping_interval=1s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-06
      • 2022-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2014-05-24
      相关资源
      最近更新 更多