是什么在请求k8s集群中的所有cpu ?



是否有办法查看pod/容器请求(不使用)一个节点上的所有CPU(或跨集群中的所有节点)?

我们总是"cpu不足"。在部署到我们的集群时出现错误,即使我已经将所有应用程序的cpu请求降低到合理的数量,并且实际上几乎没有任何cpu被使用。根据我的计算,我部署的容器请求大约400米。这是& lt;总可用CPU的7%(3个节点x 2个核= 6000m,对吧?)然而仪表板告诉我每个节点的CPU请求接近2核(80-90%)

对我来说,似乎其他事情要求太多的cpu(入口?)logstash吗?库吗?穹窿sidecar吗?度量服务器?k8s管理层?)。有办法吗?通过kubectl或仪表板)来查看所有请求的位置?

对于单个节点,它在kubectl describe node node-name的扩展输出中。

请记住,pod是在单个节点上调度的;它不能跨节点分割。如果您有一个需要100% CPU的pod,并且3个2核节点的CPU利用率为120%,那么没有单个节点有足够的容量来调度pod,即使集群作为一个整体有3个80% = 240%的可用CPU。

我的一般经验是,在更少的大节点上调度pod比在更多的小节点上调度pod更容易。部分原因是kubelet和任何DaemonSet pod等进程的开销;这在一定程度上是我在前一段描述的碎片化问题。您还可以人为地降低对pod的资源请求,使其得到调度,但是如果它比您说的更忙,它很容易受到限制(针对CPU使用)或被驱逐(针对内存使用)。

最新更新