首页 > 解决方案 > 具有不同 cpu 核心数的节点上的 kubernetes pod 资源 cpu

问题描述

这有点疯狂,但我们运行一个有 4 个节点的 Kubernetes 集群(使用 Docker 作为容器引擎):

我对容器化应用程序的 pod 资源请求 cpu 作为真实 cpu 提供的确切内容感到困惑。

据我了解,部署中请求 1 个 CPU 的 pod 都将具有相同的 cpu 份额,所以这意味着容器在 node01/node02 上的运行速度会比 03/04 快吗?

标签: kubernetes

解决方案


不必要:

  • 如果应用程序是单线程的,那么无论它所在的系统有多少内核,它都会以相同的速度运行。
  • 如果应用程序是磁盘或数据库绑定的,添加更多内核不会使其运行得更快。
  • 如果其他 pod(或非 Kubernetes 进程)在任一节点上运行,它们共享 CPU 资源,而繁忙的 8 核系统实际上可能比空闲的 4 核系统慢。
  • 如果 pod 规范有资源请求,它可能会被阻止在较小的系统上运行。
    resources:
       requests:
         cpu: 6 # can't run on the 4-core system
    
  • 如果 pod 规范有资源限制,这可能会阻止它使用所有内核,即使它被安排在更大的系统上
    resources:
       limits:
         cpu: 3 # even if it's scheduled on the 8-core system
    

推荐阅读