【问题标题】:Elastic search cluster on Kubernetes Cluster vs VMKubernetes 集群与 VM 上的弹性搜索集群
【发布时间】:2019-08-30 08:22:27
【问题描述】:

我想设置弹性堆栈(弹性搜索、logstash、beats 和 kibana)来监控我在本地裸机上运行的 kubernetes 集群。我需要关于以下两种方法的一些建议,比如哪一种更健壮、容错和生产级。假设我有一个名为 K8-abc 的 K8 集群。

方法 1- 在 kubernetes 集群之外设置弹性堆栈会更好吗?

在这种方法中,所有来自运行在 kube-system 命名空间和用户定义命名空间中的 pod 的日志都将通过 beats(在 K8-abc 上运行)获取并放入配置在 Linux Bare Metals 上的 ES 集群中Logstash(也在虚拟机上运行)。而为了获取 kubernetes 节点日志,在各个 VM(参与形成 K8-abc)上运行的节拍将获取日志并将其放入 VM 上配置的 ES 集群中。这里需要注意的是,用于形成 ES Cluster 的 VM 不是 K8-abc 的一部分。

方法 2- 在 kubernetes 集群 k8-abc 本身上设置弹性堆栈会更好吗?

在这种方法中,在 kube-system 命名空间和用户定义的命名空间中运行的 pod 的所有日志都将通过 logstash 和 beats(都在 K8-abc 上运行)发送到在 K8-abc 上配置的 Elastic 搜索集群。为了获取 K8-abc 节点日志,运行在 VM(参与形成 K8-abc)上的节拍将通过在 k8-abc 上运行的 logstash 将日志放入运行在 K8-abc 上的 ES。

有人可以帮助我评估上述两种方法的优缺点吗?即使提供了博客和案例研究的相关链接,也会有所帮助。

【问题讨论】:

    标签: elasticsearch kubernetes logstash kibana elastic-stack


    【解决方案1】:

    我更倾向于第二种解决方案。与第一个相比,它具有许多优点,但是在初始设置方面它可能看起来更复杂。在将任何其他类型的工作负载迁移到 Kubernetes 时,您实际上可以提出类似的问题。与 VM 相比,它具有许多优点。仅举几例:

    1. self-healing cluster,
    2. service discovery和集成load balancing,
    3. 与 VM 相比,这种解决方案更容易扩展 (HPA),
    4. 存储编排。 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商和 many more,包括 Dynamic Volume Provisioning 机制。

    上述所有要点都可以轻松应用于任何其他工作负载,并且通常被视为 Kubernetes 的优势,所以让我们看看为什么要使用它来实现 Elastic Stack:

    1. 看起来 Elastic 正在他们的 website 上积极推广 Kubernetes 的使用。另见this 文章。
    2. 他们还提供了一个官方的elasticsearch helm chart,所以它已经得到了Elastic的很好的支持。

    可能还有很多其他原因支持我在这里没有提到的 Kubernetes 解决方案。 Here 您可以找到一篇关于在 Kubernetes 上设置 高度可用和可扩展的 Elasticsearch 的动手文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多