kubernetes 当无法调度pod时,“CPU不足(3)”中的3表示什么?

v8wbuo2f  于 2023-03-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(348)

当我创建一个Pod时,由于没有节点具有足够的CPU来满足Pod的CPU请求而无法对其进行调度,kubectl describe pod/...的事件输出包含类似No nodes are available that match all of the following predicates:: Insufficient cpu (3)的消息。
Insufficient cpu (3)中的(3)是什么意思?
例如,如果我尝试创建一个请求24个CPU的pod,而我的所有节点只有4个CPU:

$ kubectl describe pod/large-cpu-request
Name:           large-cpu-request
Namespace:      default
Node:           /
Labels:         <none>
Annotations:    <none>
Status:         Pending
IP:
Controllers:    <none>
Containers:
  cpuhog:
    ...
    Requests:
      cpu:              24
...
Events:
  FirstSeen     LastSeen        Count   From                    SubObjectPath   Type            Reason                  Message
  ---------     --------        -----   ----                    -------------   --------        ------                  -------
  23m           30s             84      default-scheduler                       Warning         FailedScheduling        No nodes are available that match all of the following predicates:: Insufficient cpu (3).

在其他时候,当pod的资源请求太高时,我会看到类似No nodes are available that match all of the following predicates:: Insufficient cpu (2), PodToleratesNodeTaints (1)的事件消息,所以3看起来不像是一个常数,也不像是与我的24 CPU请求相关。

falq053o

falq053o1#

这意味着您的Pod不适合3个节点,因为CPU不足,1个节点,因为taints(可能是主节点)。

kognpnkq

kognpnkq2#

当Pod请求的CPU多于集群中的CPU时,无法对其进行调度。例如,如果您有8个Kubernetes CPU(请参阅本页计算您拥有的Kubernetes CPU数量),并且如果您现有的Pod已经消耗了这么多CPU,那么你不能安排更多的pod,除非你的一些现有的pod在你请求安排一个新的pod的时候被杀死。水平Pod自动分频器(HPA)可以遵循以下简单公式:
资源请求CPU * HPA最大PODS〈=总Kubernetes CPU
你可以随时调整这些数字。在我的例子中,我调整了my manifest文件的资源请求CPU。所以它可以是200m或1000m(= 1 Kubernetes CPU)。

相关问题