我注意到在运行 Kubernetes 集群的 Raspberry Pi 上运行 ELK 堆栈。我注意到它没有资源来运行所有三个容器。我正在查找使用 Kubernetes 可以对资源 CPU 和内存设置限制和请求,这让我开始思考。最低要求是什么?对我来说,应用程序是贪婪的,那么有没有办法减少对 Logstash 的要求,强调 Elasticsearch 的资源?
现在,我正在运行 Raspberry Pi 4、4g RAM、32G 磁盘。
如果我可以对容器提出最小和最大要求,它将更好地让我管理资源。我注意到的想法是,我无法了解不同容器的最低要求。
https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-managing-compute-resources.html
我相信上面的链接告诉我 CPU 消耗是贪婪的,但 Elastic 和 Kibana 的默认内存分别为 2Gi 和 1Gi。但是它没有提到logstash,以及是否有对CPU的最低要求。
我不确定是否应该将每个 ELK 容器设置为 1CPU、1Gi RAM,我可以尝试看看它是否正常工作,但由于它的节流概念让我很好奇快乐的媒介会是什么。
最佳答案
Logstash 不是 Elastic Cloud 的一部分,这就是您共享的 Elastic Cloud on Kubernetes 文档链接中没有提及它的原因。
Logstash 对 CPU 的限制比对内存的限制更多,但它需要多少内存完全取决于您的管道。
在 Logstash 中,内存取决于管道、批处理大小、使用的过滤器、每秒事件数、队列类型等。如果您正在运行开发或实验室环境,我认为您可以尝试给 Logstash 1 CPU 和512 MB 的 RAM,看看它是否适合您的用例。
但我会说 4GB 对于完整堆栈来说非常小,因为您需要为应用程序提供内存并且仍然为系统留下一些内存。
关于elasticsearch - 在 k8s pod 中运行 Logstash 需要哪些资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64510157/