首页 > 解决方案 > 有没有办法在 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 管理器启用静态策略来获得我想要的东西。

标签: kuberneteskubernetes-pod

解决方案


推荐阅读