kubernetes - 有没有办法在 Kubernetes 中为 Pod 分配内核时强制使用相同的物理 CPU?
问题描述
我想知道是否可以强制 Kubernetes 在启动 POD 的同时从同一个 CPU 分配内核。我希望 Kubernetes 做的是,当创建新的 POD 时,分配给它们的核心应该来自 - 比如说 - CPU1,只要它上面还有可用的核心。CPU2's、CPU3's 等核心不应在新启动的 pod 中使用。我希望我的 POD 尽可能从单个 CPU 分配内核。
有没有办法做到这一点?
另外,有没有办法查看 POD 的核心(cpu)来自哪些物理 CPU?
非常感谢。
编辑:让我解释一下我为什么要这样做。
我们在 Kubernetes 上运行 Spark 集群。system/linux 管理团队的负责人警告我们关于NUMA的概念。他告诉我们,如果我们从同一个物理 CPU 分配内核,我们可以提高 executor pod 的性能。这就是我开始研究这个的原因。
我找到了这个Kubernetes CPU Manager。文档说:
CPU 管理器尽最大努力按拓扑顺序分配 CPU。如果整个套接字空闲,CPU 管理器将把空闲套接字中的 CPU 专门分配给工作负载。这通过避免任何跨套接字流量来提高工作负载的性能。
同样在同一页面上:
如果可用,从同一物理 CPU 内核分配所有逻辑 CPU(超线程),并且容器请求整个内核的 CPU。
所以现在我开始想,也许我需要为CPU 管理器启用静态策略来获得我想要的东西。
解决方案
推荐阅读
- opencv - 相机校准。关于 cv2.calibrateCamera 参数的说明
- python - Tkinter 和 Python 登录系统
- android - onclick 在 android 的自定义 AlertDialog 中不起作用
- automation - 如何在 codeceptjs 中的 codecept.conf.js 中使用 { grep: process.env.profile}
- node.js - React-Native 错误不能在模块外使用导入
- php - 无法访问由 json_decode 创建的 Json 数组值
- javascript - Javascript - Google IMA SDK 覆盖跳过按钮
- node.js - 如何在 Alternative Runtime Docs Add-on 中获取 Google Docs 文档标识符
- javascript - 谷歌登录无法在 Chrome 的隐身模式下工作
- tensorflow - 如何从 keras 获取对象位置和预测分数