我运行了v1.9.2Kubernetes 的自定义设置,并使用Prometheus抓取了各种指标v2.1.0。除其他外,我抓了kubelet和cAdvisor指标。
我想回答这个问题:“ 如何通过定义的CPU资源的多少requests和limits?在我的部署实际上是在使用中(毫)内核方面荚(及其容器) ”
有许多可用的刮除指标,但并非如此。也许可以通过以秒为单位的CPU使用时间来计算,但是我不知道如何。
我一直在考虑这是不可能的-直到一个朋友告诉我她在集群中运行Heapster时,内置Grafana中有一个图形准确地表明:它在(milli)内核中显示pod及其容器的单个CPU使用情况。
由于Heapster还使用kubelet和cAdvisor度量,所以我想知道:我该如何计算?InfluxDB中的指标已命名,cpu/usage_rate但是即使使用Heapster的代码,我也无法弄清楚他们如何计算它。
任何帮助表示赞赏,谢谢!
我深入研究 Kubernetes 资源限制,很难理解 CPU 的用途limits。我知道 Kubernetes 通过requests了并且limits下到(在我的例子中)Docker 运行时。
示例:我有 1 个带有 1 个 CPU 的节点和 2 个带有 CPUrequests: 500m和limits: 800m. 在 Docker 中,这会导致 ( 500m -> 0.5 * 1024 = 512)--cpu-shares=512和 ( 800m -> 800 * 100) --cpu-quota=80000。Pod 由 Kube 调度程序分配,因为requests总和不超过节点容量的 100%;limits就节点而言是过度使用的。
上面允许每个容器每 100 毫秒周期获得 80 毫秒 CPU 时间(默认)。一旦 CPU 使用率达到 100%,CPU 时间就会根据容器的权重在容器之间共享,以 CPU 份额表示。根据 1024 的基值,每个集装箱占 50%,每个集装箱占 512 个份额。在这一点上 …