Kubernetes 节点上的CPU限制(核心)超过100%

Kubernetes 节点上的CPU限制(核心)超过100%,kubernetes,Kubernetes,我刚刚在kubernetes仪表板上注意到: CPU请求(核心) 0.66(16.50%) CPU限制(核心) 4.7(117.50%) 我很不明白为什么把这个限制定为117.50%。。。?是不是我的一项服务使用太多,但不是在请求中?查看kubectl描述节点,我没有看到任何服务使用超过2%(有43个,最多86个) 谢谢。允许(所有事物)限制节点资源的过度使用。请求不能,因此该值不应超过可用值的100%。基本上,“请求”是一个最低要求,但“限制”是一个最大的突发范围,不太可能每个人都会同时突发。

我刚刚在kubernetes仪表板上注意到:

CPU请求(核心) 0.66(16.50%)

CPU限制(核心) 4.7(117.50%)

我很不明白为什么把这个限制定为117.50%。。。?是不是我的一项服务使用太多,但不是在请求中?查看kubectl描述节点,我没有看到任何服务使用超过2%(有43个,最多86个)


谢谢。

允许(所有事物)限制节点资源的过度使用。请求不能,因此该值不应超过可用值的100%。基本上,“请求”是一个最低要求,但“限制”是一个最大的突发范围,不太可能每个人都会同时突发。如果这对您来说是可能的,您应该将您的请求和限制设置为相同的值。

我的大致理解是,Kubernetes允许您过度提交—也就是说,在特定节点上的资源请求超过了节点的容量—让您的资源使用效率稍微提高一点

例如,假设您正在运行部署A和部署B,这两个部署在空闲时只需要100 MB内存(总共200 MB),但在主动处理请求时需要1 GB内存。您可以将它们设置为在具有1GB可用内存的节点上运行。您还可以将它们放在一个具有1.5 GB内存的节点上,假设a和B不必同时处理流量,从而避免了巨大的资源分配

如果您正在使用大量的微服务,这可能特别合理:您甚至可能知道,在A完成请求之前,B无法处理数据,这为您提供了一个更有力的保证,确保事情不会重叠并导致问题

Kubernetes决定是否过度分配资源取决于您为部署配置的服务质量(QoS)容差。例如,您不会在
保证的
QoS类上获得过度承诺,但是如果您使用默认类
BestEffort
,您可能会看到过度承诺


您可以在中阅读有关QoS类的更多信息。

我明白您的意思!我仍然不知道该限制是如何计算的(因为所有的限制都不等于该数字),但它确实有意义,谢谢!再说一遍,我不是100%确定,但我想你可能混淆了两件事。请求有点像软限制,即您认为资源将使用什么。这个限制是一个硬限制:如果超过这个限制,库伯内特斯将引导吊舱。这两种情况都可能过度使用,并且只有在部署或pod定义中指定了它们时才会出现。