如何在 cAdvisor 中将 CPU 负载聚合减少到 1 秒而不是 10 秒?

How to decrease CPU load aggregation to 1s instead of 10s in cAdvisor?

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

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

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

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

实际上您不需要更新您的部署。 --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。您需要在所有节点上执行此操作。

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

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