繁体   English   中英

在Kubernetes上查找和设置应用程序资源限制/请求的最佳方法

[英]Best way to find out and set application resource limits/request on kubernetes

希望你能帮助我!

获取和设置请求并限制每个容器的资源的最佳方法是什么?

我在考虑设置预期的通信量并编写一些负载测试代码,然后以“低限制”启动单个Pod并运行负载测试直到OOMed,然后再次调优(类似超频)内存,直到发现瓶颈,然后再进行攻击CPU,直到一切都“稳定”,依此类推。 然后我将使用该“限制”作为“请求值”,并使用“请求值”的两倍作为“限制”(或基于结果的安全值)。 最后,将它们扩展为平均流量(豆荚的固定数量),并为峰值产量设置自动缩放豆荚规则。

这是一个好方法吗? 您推荐什么工具和指标? 我正在使用prometheus-operator进行监视,并使用vegeta进行负载测试。

垂直吊舱自动缩放怎么办? 你用过吗? 准备生产了吗?

顺便说一句:我正在使用带有Terraform模块的AWS托管解决方案

谢谢阅读

我通常在没有限制或没有设置资源的情况下启动我的Pod。 然后,我让它们在正常负载下运行一段时间,以收集有关资源消耗的指标。

然后,我将内存和CPU请求设置为测试期间获得的最大消耗的+ 10%,并限制为请求的+ 25%。

这只是一个示例策略,因为没有任何一种方法可以适合所有方法。

VerticalPodAutoScaler的更多内容是确保Pod可以运行。 因此,它每次启动OOMKilled时都将其拉低并使其内存加倍。 这有可能导致Pod占用资源。 它也受到限制,因为它没有考虑性能不佳的情况。 如果您的应用资源不足,它可能仍会响应,但在您认为可以接受的时间范围内未响应。

我认为您正在采用一种很好的方法,因为您正在查看负载下的应用程序,并根据需要评估它需要执行的操作。 我怀疑我能建议您尚不知道的任何工具,但是如果有帮助,那么如何为容器设置正确的千分之一英寸还有更多讨论 以及从中链接的线程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM