Kubernetes 上的 Elasticsearch - 'Elastic Cloud (ECK)' 对比 'Helm charts'

Elasticsearch on Kubernetes - 'Elastic Cloud (ECK)' vs 'Helm charts'

出于日志文件聚合的目的,我希望在本地(vanilla)Kubernetes 集群上设置生产 Elasticsearch 实例。

似乎有两个主要的部署选项:

  1. 弹性云 (ECK) - https://github.com/elastic/cloud-on-k8s
  2. Helm 图表 - https://github.com/elastic/helm-charts

我已经成功使用 old (soon to be deprecated) helm charts 但刚刚发现了 ECK。

这两种选择的优缺点是什么?任何可能影响长期使用的约束或限制?

1. 弹性云(ECK):

优点

  • 文档导向(JSON)
  • 多语言 - ICU 插件用于索引和标记化 多语言内容,这是一个基于 elasticsearch 的插件 unicode 文本分割标准的 lucene 实现
  • 管理和监控多个集群
  • 轻松升级到新的堆栈版本
  • 扩展和缩减集群容量
  • 更改集群配置
  • 动态扩展本地存储(包括弹性本地卷,一个 本地存储驱动程序)
  • 计划备份
  • 默认安全 - 启用加密并受保护 创建时的强默认密码
  • 免费功能 - Canvas、地图、正常运行时间
  • 热-温-冷和自定义拓扑
  • 官方 GKE 支持
  • 免费套餐

缺点

  • 它不像其他一些选项那样擅长作为数据存储 MongoDB、Hadoop 等。对于较小的用例,它会执行得很好。如果 你每天都在传输 TB 的数据,你会发现它 阻塞或丢失数据
  • 它的学习曲线很长 更陡峭
  • 当您不能或不会创建具有生产价值的设置时,因为 经济学。对于测试和开发,单个节点可以正常工作。当你 转向生产,你应该有不少于 3-node/2-replica

您可以在此处找到更多信息:ECK

2. Elastic Stack Kubernetes Helm 图表:

优点

  • 庞大的社区
  • 易于在 Kubernetes 中部署和使用
  • 堆栈中的每个组件负责 日志记录管道,它们一起提供了一个全面且 强大的 Kubernetes 日志记录解决方案
  • 丰富的分析能力

缺点

  • 难以维持规模

您可以在此处找到更多信息:open-source-monitoring-tools-for-kubernetes

主要区别在于 Helm Charts 相当不固执,而 Operator 固执己见——它内置了许多最佳实践,例如对使用安全性的硬性要求。此外,Operator Framework 建立在协调循环之上,并将持续检查您的集群是否处于所需状态。 Helm Charts 更像是一个包管理器,您可以在其中 运行 特定命令(在版本 X 中安装带有 Y 节点的集群,现在再添加 2 个节点,现在升级到版本 Z,...)。

如果 ECK 是 Cloud-on-Kubernetes,您可以将 Helm 图表视为 Stack-on-Kubernetes。它们是一种在 Kubernetes 环境中定义我们的 Docker 图像的精确规范 运行 的方法。

另一个区别是 Helm Charts 是开源的,而 Operator 是免费的,但使用 Elastic License(你不能使用它 运行 付费 Elasticsearch 服务是主要限制)。