是否有办法查看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使用)或被驱逐(针对内存使用)。