kubernetes - 限制一组 pod 的 cpu
问题描述
我有一个基于 Java 的应用程序,它由几个 pod(比如说 4 个)组成,这些 pod 是由毫核总数许可的(假设我们已经购买了 2000mC 的许可证)。应用程序运行在具有 4000mC 的集群主机上,以支持应用程序所需的内存。该应用程序是突发性的,因此每个 pod 都希望在某个时间点使用 2000mC,但不是同时使用。如果 cpu 限制设置为每个 pod 2000mC,那么超过 4 个 pod,我们的许可责任将为 8000mC,尽管实际上主机容量会将其限制为 4000mC。这仍然是我们支付的许可证的两倍。如果我们将每个 pod 限制为 500mC 以确保我们永远不会超过 2000mC 并保持在我们的许可限制内,那么这些 pod 资源不足。
有没有办法限制一组 pod 的 CPU 以允许任何单个 pod 爆破到最大限制,而集体不允许它们超过最大值?
解决方案
这里一个好的策略是同时使用请求和资源的限制参数。
作为您的案例的示例,您可以使用以下配置
resources.requests.cpu
- 750mCresources.limits.cpu
- 2000mC
这将在节点中分配 3000m (740 x 4) CPU,允许额外的 1000mC 用于 CPU 爆发。
推荐阅读
- javascript - 如何知道浏览器是否支持 webSQL?
- c - C编程,为什么我的代码有溢出?
- java - 10 分钟后重复 TextSwitcher 文本
- git - Git 合并正在添加两个本地分支中都不存在的文件
- python - 在 python 中自动化时如何使用 selenium 处理 Microsoft Outlook 应用程序弹出窗口
- java - 参数化类是否可以在 java 中扩展自身?
- javascript - 如何防止在 iframe src 上自动下载 doc/docx/pdf 文件
- c# - 特殊列转换为json
- php - Laravel 中的“SQLSTATE[HY000] [1130] 主机‘127.0.0.1’不允许连接到这个 MariaDB 服务器”
- typescript - 我如何检查 typescript generic 中未定义的参数