怎么样动态的给Pod提供可用的huge-pages?

啊啊 发表于: 2022-08-10   最后更新时间: 2022-08-10 21:19:31   1,145 游览

我如何设置kubernetes将一个节点上所有可用的huge-pages(大页)分配给我的pod?

我的应用程序使用 huge-pages。在部署到kubernetes之前,我已经对kubernetes节点进行了大页的配置,我知道通过指定k8s文档中提到的限制和请求,我的应用pod可以使用巨大页面。但这在某种程度上将节点规格与我的应用配置紧密联系起来。如果我的应用程序在不同的节点上运行,有不同数量的巨大页面,我将不得不根据环境不断重写这些值。

resources:
  limits:
    hugepages-2Mi: 100Mi

但是,根据k8s文档,"大页请求必须等于限制。如果指定了限制,但没有指定请求,就是默认请"。

没有办法要求k8s为我的应用程序分配所有可用的巨大页面,或者像未指定内存或cpu请求/限制的情况下那样保持动态?

发表于 2022-08-10
添加评论

不行的

虽然 HugePages 的申请方式与默认的内存相差不多,但是它实际上是操作系统单独管理的特殊资源,Linux 会在 /proc/meminfo 中单独展示 HugePages 的相关数据,而 Kubernetes 也会认为大页是不同于内存的独立资源。

另外,在设计方案中,大页资源请求是固定的,不支持过量使用(overcommit),也不是为可能有多种尺寸的场景设计的。

我们认为,应用程序试图使用多个巨大页面尺寸的情况很少。

所以:
你可能不得不根据你的节点设置不同pod规格,例如通过污点将有助于识别特定资源。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题