kubernetes - 具有不同 cpu 核心数的节点上的 kubernetes pod 资源 cpu
问题描述
这有点疯狂,但我们运行一个有 4 个节点的 Kubernetes 集群(使用 Docker 作为容器引擎):
- node01/node02:8核
- node03/node04:4核
我对容器化应用程序的 pod 资源请求 cpu 作为真实 cpu 提供的确切内容感到困惑。
据我了解,部署中请求 1 个 CPU 的 pod 都将具有相同的 cpu 份额,所以这意味着容器在 node01/node02 上的运行速度会比 03/04 快吗?
解决方案
不必要:
- 如果应用程序是单线程的,那么无论它所在的系统有多少内核,它都会以相同的速度运行。
- 如果应用程序是磁盘或数据库绑定的,添加更多内核不会使其运行得更快。
- 如果其他 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
推荐阅读
- python - django 异常:应用程序尚未加载
- apache-kafka - Apache Kafka 灾难恢复计划
- python - 如何调试 f2py 错误“无法创建意图(缓存|隐藏)|可选数组 - 必须已定义尺寸但得到 (-1,)”
- sql-server - 如何从变量中选择?
- android - 一个片段的向上导航构建在另一个片段之上
- asp.net - Ajax 调用在 ASP.Net Web 应用程序中不起作用
- essbase - Essbase 和数据仓库(一般问题)
- javascript - 检测 iframe src 更改 - 外部网站
- reactjs - 虚拟 DOM 和真实 DOM 批量操作间隔
- javascript - Array Slice() 修改原始数组