我可以对多个k8集群使用单个elasticsearch / kibana吗?

时间:2019-12-05 15:02:10

标签: elasticsearch logging kubernetes kibana efk

您是否知道不允许使用单个ES /木瓜作为流利于多个k8集群的目标的任何陷阱或要求?

我们正在设计一种新的kubernetes模型。我有运行多个kubernetes集群的要求,可以说4-6。即使将工作负载分散在多个k8群集中,我也不需要拆分日志记录,并认为在集中位置的所有群集中查找pod的日志会更容易。同时减少了对kibana / elasticsearch的维护。

使用EFK for Kubernetes,我可以将来自多个k8集群的Fluentd指向一个ElasticSearch / Kibana吗?我不认为我是第一个想到此方法的人,但是我找不到有关此操作的任何讨论。找到了很多有关设置efk的讨论,但是我发现的所有讨论只针对其自己的elasticsearch / kibana讨论了一个k8。

还有其他人沿着使用单个es / kibana来服务来自多个kubernetes集群的日志的道路吗?我们将全力以赴地进行测试,但看看是否还有其他人已经走过这条路。

2 个答案:

答案 0 :(得分:0)

我不认为您应该为每个kubernetes集群创建一个弹性实例,您可以运行一个主要的弹性实例并为其所有日志编制索引。

但是,即使您没有每个kubernetes客户端的弹性实例,我认为您也应该拥有drp,所以可以说代替将所有Pod的日志直接移动到Elastic上,也许将其移动到kafka,然后拆分变成两个弹性簇。

如果每个kubernetes集群都位于不同的区域,并且还需要Pod的日志的低延迟(<1s),那么这很大程度上取决于用例,因此也许一个弹性实例不是正确的答案。 / p>

答案 1 :(得分:0)

基于[1],我们可以阅读:

  

熟练从群集节点上运行的Pod收集日志,然后进行路由   他们到一个中央化的Elasticsearch。

     

然后 Elasticsearch 从Fluentd提取这些日志并将其存储在中央位置。它还用于有效搜索文本文件。

     

Kibana 是用户界面;用户可以可视化收集到的日志和指标,并基于查询创建自定义仪表板。

有几种方法可以解决您的难题:

a)创建一个集中式仪表板,并使用每个集群的Elasticsearch作为后端。这样一来,您就可以看到所有群集的日志。

b)创建一个Elasticsearch集群并将每个Elasticsearch添加到其中。这不是最佳选择,因为您将多次复制数据,需要处理每个索引分片,并且需要解决裂脑难题,但这对于提高数据弹性非常有用。

c)使用另一种解决方案,例如APM(New Relic,Instana等)将日志完全集中在一个地方。

[1] https://techbeacon.com/enterprise-it/9-top-open-source-tools-monitoring-kubernetes