首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes .小于可用CPU的CPU限制指示

Kubernetes .小于可用CPU的CPU限制指示
EN

Stack Overflow用户
提问于 2018-02-10 21:42:49
回答 1查看 3K关注 0票数 5

目标

澄清K8S容器CPU使用率的行为,当限制设置到远远低于可用cpu时,并确认如何设置限制的理解是否正确。

背景

我有一个2 2CPU的节点,所以2000米可以是上限。每个命名空间都使用LimitRange设置,这将容器的CPU限制在500 m以内。

代码语言:javascript
复制
kind: LimitRange
metadata:
  name: core-resource-limits
    spec:
      limits:
      - default:
          cpu: 500m
          memory: 2Gi
        defaultRequest:
          cpu: 100m
        type: Container

指示

即使有2个CPU可用(没有其他进程/容器等待)并且容器可以运行,它也只能使用0.5CPU,而1.5CPU将被闲置。这是正确的吗?

如何设置LimitRange

我相信我可以设置限制,如75%-80%的可用2 CPU,以更好地利用CPU资源。因为如果有多个容器试图比请求更多地声明CPU,K8S将根据每个容器的请求值(一些来自OpenShift,但认为与K8S相同)在容器之间分配CPU。这是正确的吗?

代码语言:javascript
复制
kind: LimitRange
metadata:
  name: core-resource-limits
    spec:
      limits:
      - default:
          cpu: 1500m
          memory: 2Gi
        defaultRequest:
          cpu: 100m
        type: Container

CPU请求

CPU请求表示容器可能消耗的最小CPU量,但是如果没有争用,则可以使用节点上所有可用的CPU。如果节点上存在CPU争用,则CPU请求提供系统上所有容器的相对权重(),用于容器可能使用的CPU时间。

CPU限制

荚中的每个容器都可以指定在节点上限制使用的CPU数量。CPU限制控制容器可以使用的最大CPU数量,而不依赖于节点上的争用。如果容器试图超过指定的限制,系统将节流容器。这允许容器具有一致的服务级别,而不依赖于调度到节点的荚数。

kubernetes /了解CPU资源限制

CPU的6%意味着节点CPU时间的6% (CPU请求)保留给这个吊舱。因此,它保证它总是得到至少这个数量的CPU时间。它仍然可以突破高达12% (CPU限制),如果还有剩余的CPU时间

如何执行Kubernetes的CPU限制?

检查我的一个容器,我看到Kubernetes为他们设置了CpuPeriod,CpuQuota。Docker (https://docs.docker.com/engine/reference/run/)提到CFS文档(https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt),从那里的信息来看,这些似乎是很难的限制。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-26 09:23:36

“行动中的库伯奈特斯”第一版

14.1.3.了解CPU请求如何影响CPU时间共享

但是,如果一个容器想要消耗尽可能多的,而另一个容器在给定的时刻处于空闲状态,那么第一个容器将被允许使用整个CPU时间(减去第二个容器所用的少量时间,如果有的话)。毕竟,如果没有其他人使用,那么使用所有可用的是有意义的,对吗?一旦第二个容器需要CPU时间,它就会得到它,第一个容器将被节流回来。

即使有2个CPU可用(没有其他进程/容器等待)并且容器可以运行,它也只能使用0.5CPU,而1.5CPU将被闲置。这是正确的吗?

所以这是正确的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48725868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档