【问题标题】:Best practices for data storage with Elasticsearch and Kubernetes使用 Elasticsearch 和 Kubernetes 进行数据存储的最佳实践
【发布时间】:2021-05-16 08:56:54
【问题描述】:

在阅读了一些关于 Kubernetes 中Persistent Volumes 的文档后,我想知道哪一个是运行高可用性 ElasticSearch 集群的最佳设置(存储方面)。我没有运行典型的 EFK(或 ELK)设置,但我使用 ElasticSearch 作为合适的全文搜索引擎。

我已经阅读了official Elastic Documentation,但我发现它缺乏明确性。根据“Kubernetes in Action”,第 6 章:

当运行在 pod 中的应用程序需要将数据持久化到磁盘和 即使将 pod 重新安排到 另一个节点,您不能使用我们提到的任何卷类型,所以 远的。因为需要从任何集群节点访问此数据, 它必须存储在某种类型的网络附加存储 (NAS) 上。

所以如果我没记错的话,我需要一个Volume 并通过PersistentVolumesPersistentVolumeClaim 使用Retain 策略访问它。

在查看Official Volumes 时,我感觉应该自己定义卷类型。不过,在查看DigitalOcean guide 时,那里似乎没有任何音量设置。 我选择了那个教程,但是在 Medium 上有几十个都在做同样的事情。

那么:哪一个是 ElasticSearch 集群的最佳设置?当然要记住,为了不丢失索引中的任何数据,并且能够添加可以访问索引的 pod(Kubernetes)或节点(ElasticSearch)。

【问题讨论】:

    标签: elasticsearch kubernetes


    【解决方案1】:

    在 Kubernetes 中部署 ElasticSearch 集群的一个很好的模式是定义一个 StatefulSets

    由于 StatefulSet 复制了多个 Pod,因此您不能简单地引用持久卷声明。相反,您需要将 persistent volume claim template 添加到 StatefulSet 状态定义中。

    为了使这些复制的永久卷正常工作,您需要创建一个Dynamic Volume ProvisioningStorageClass,以便按需创建存储卷。

    DigitalOcean guide 教程中,持久卷声明模板如下:

      volumeClaimTemplates:
      - metadata:
          name: data
          labels:
            app: elasticsearch
        spec:
          accessModes: [ "ReadWriteOnce" ]
          storageClassName: do-block-storage
          resources:
            requests:
              storage: 100Gi
    

    这里,StorageClassdo-block-storage。您可以将其替换为您自己的存储类

    【讨论】:

    • 我一回到工作岗位就会检查一下,看看会发生什么。但是感谢您的明确答复。有太多的文档,有时感觉有点不知所措。特别是关于 Kubernetes 中的卷和数据存储
    【解决方案2】:

    非常有趣的问题,

    您需要考虑 Kubernetes 中的 Elasticsearch 节点,它相当于 Elasticsearch Pod。

    并且 Kubernetes 需要保存每个 pod 的身份以附加到正确的 Persistent Volume 声明以防中断,这里是 StatefulSet

    StatefulSet 将确保同一个 PersistentVolumeClaim 在其整个生命周期内保持绑定到同一个 Pod。

    PersistentVolume (PV) 是一种 Kubernetes 抽象,用于在提供的硬件上进行存储。这可以是 AWS EBS、DigitalOcean Volumes 等。

    我建议您查看 Elasticsearch 官方 Helm 图表:https://github.com/elastic/helm-charts/tree/master/elasticsearch

    还有 Elasticsearch 运算符:https://operatorhub.io/operator/elastic-cloud-eck

    【讨论】:

      猜你喜欢
      • 2020-01-15
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多