我目前正在努力在K8s中部署elasticseacrh集群。 谁能帮助我了解在我们的K8s集群内部还是外部部署ES集群的利弊? 提前谢谢!
答案 0 :(得分:0)
一个大优点是数据摄取。如果您的ES群集位于k8s群集中,则数据提取将更快。
但是,资源最大的缺点。 ES将吞噬您的资源,而不是google-chrome吞噬您的ram。我的意思是很多。
维护它很麻烦。不确定您的用例,但如果要记录日志(像大多数情况一样),通常云提供商会为此提供自己的解决方案。
如果没有,那么:
我建议您在群集中为ES使用专用节点,否则,如果出现峰值并开始使用大量节点资源,则可能会影响其他Pod。
还要确保熟悉并优化冷热数据,这将为您节省大量时间和资源。
编辑
我没有强调这种更快的数据提取有多么重要,因此将其部署到集群内部似乎不是一个足够好的理由。底线很明显:网络延迟和带宽。
这些事情可以真正加起来(从所有这些容器中拾取所有日志,然后扩展这些相同的容器,然后扩展群集,然后再次...),因此每个单位都很重要。如果您的VM不会受到这两者的影响(这意味着它们的延迟与集群中的其他节点相同),我认为这不会有什么大不同。
另一方面,将它们从群集中分离出来并没有太大的好处。无论如何,它是基础架构的一部分。
如果明天您决定切换到AWS或GKE,该怎么办?您将必须更改部署,然后重新设置整个过程。另一方面,如果它已经是集群的一部分,则只需kubectl apply
和
我还可以猜测您将尝试设置ELK堆栈。如果时间和意愿允许,请给fluentd一个机会(它与所有logtash客户100%兼容,但重量更重)。