Kubernetes关于cpu资源分配的设计

kubernetes资源

在K8s中定义Pod中运行容器有两个维度的限制:

  1. 资源需求(Requests):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。如 Pod运行至少需要2G内存,1核CPU。(软限制)
  2. 资源限额(Limits):即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。(硬限制)

    Kubernetes关于cpu资源分配的设计_第1张图片

cgoup资源限制(cgroup)

  1. --cpu-period: 是用来指定容器对 CPU 的使用要在多长时间内做一次重新分配。--cpu-period、--cpu-quota 两个参数是控制容器可以分配到的 CPU 时钟周期。
  2. --cpu-quota: 是用来指定在这个周期内,最多可以有多少时间用来跑这个容器。与--cpu-shares不同的是,这种配置是指定一个绝对值,容器对 CPU 资源的使用绝对不会超过配置的值。cpu-quota 的值默认为 -1, 表示不做控制。cpu-period 和 cpu-quota 参数一般联合使用。
  3. --cpu-shares:通过 cpu share 可以设置容器使用 CPU 的优先级。但具体cpu资源分配结果取决于同时运行的其他容器的CPU分配和容器中进程运行情

你可能感兴趣的:(云原生,linux,kubernetes,容器,云原生)