gpt4 book ai didi

apache - 如何处理Kubernetes中Apache的资源限制

转载 作者:行者123 更新时间:2023-12-02 12:07:27 26 4
gpt4 key购买 nike

我正在尝试在Google Cloud上部署可扩展的Web应用程序。
我有kubernetes部署,它创建了apache + php pod的多个副本。这些设置了CPU /内存资源/限制。

可以说每个副本的内存限制为2GB。如何正确配置apache以遵守此限制?

我可以修改最大进程数和/或每个进程的最大内存,以防止内存溢出(因此,副本不会因为OOM而被杀死)。但这确实带来了新问题,此设置还将限制我的副本可以处理的最大请求数。如果发生DDOS攻击(或更多流量),则瓶颈可能是最大进程限制,而不是内存/ cpu限制。我认为这种情况可能会经常发生,因为这些限制是针对最坏的情况设置的,而不是基于平均流量。

我想配置自动缩放器,以便在发生此类事件时不仅会在cpu /内存使用量接近极限时创建多个副本。

如何正确解决此问题?感谢帮助!

最佳答案

我建议您执行以下操作,而不是尝试配置apache以在内部进行限制:

  • 强制对pod进行资源限制。即让他们OOM。 (但请注意NOTE *)
  • 根据您的负载为部署定义自动缩放指标。
  • 设置命名空间范围的资源配额。这样就可以对该 namespace 中可以使用的资源容器进行集群范围的限制。

  • 这样,您可以让您的Apache + PHP Pod尽可能处理尽可能多的请求,直到它们变为OOM,这时它们会重新生成并再次加入池,这很好*(因为希望它们是无状态的),并且您在任何时候都不会过度所有资源利用率都超过了对 namespace 实施的资源限制(配额)。

    *注意:仅当您没有做诸如websockets或基于流的HTTP之类的花哨的事情时,这才是正确的,在这种情况下,OOMing Apache实例将关闭持有该实例的开放套接字的其他客户端。如果需要的话,您始终应该能够始终根据其运行的线程/进程数来对apache进行限制,但是最好不要这样做,除非您有明确的需求。通过这种设置,无论您做什么,都将无法逃避大规模的DDoS攻击。您正在做的是要弄坏套接字(对于OOM)或请求超时(没有足够的线程来处理请求)。您需要更加复杂的网络/过滤工具,以防止“良好”的流量受到打击。

    关于apache - 如何处理Kubernetes中Apache的资源限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49862623/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com