maz*_*zze 6 elasticsearch kubernetes
在阅读了一些关于Kubernetes 中的Persistent Volumes 的文档后,我想知道哪一个是运行高可用 ElasticSearch 集群的最佳设置(存储方面)。我没有运行典型的EFK(或 ELK)设置,但我使用 ElasticSearch 作为合适的全文搜索引擎。
我已经阅读了官方的 Elastic Documentation,但我发现它非常缺乏说明。根据“Kubernetes in Action”,第 6 章:
当在 pod 中运行的应用程序需要将数据持久化到磁盘并且即使 pod 重新调度到另一个节点时也有相同的数据可用时,您不能使用我们迄今为止提到的任何卷类型。由于需要从任何集群节点访问此数据,因此必须将其存储在某种类型的网络附加存储 (NAS) 上。
所以,如果我没有记错的话,我需要一个Volume和访问它通过PersistentVolumes和PersistentVolumeClaim与Retain政策。
在查看Official Volumes 时,我感觉应该自己定义 Volume 类型。但是,在查看DigitalOcean 指南时,那里似乎没有任何 Volume 设置。我选择了那个教程,但是在 Medium 上有几十个都在做同样的事情。
那么:哪个是 ElasticSearch 集群的最佳设置?当然要记住,为了不丢失索引中的任何数据,并且能够添加可以访问索引的 pods(Kubernetes) 或节点 (ElasticSearch)。
小智 3
在 kubernetes 中部署 ElasticSearch 集群的一个好模式是定义一个StatefulSets.
由于 StatefulSet 复制多个 Pod,因此您不能简单地引用持久卷声明。
persistent volume claim template相反,您需要向 StatefulSet 状态定义添加一个。
为了使这些复制的持久卷正常工作,您需要创建动态卷配置和存储类,以允许按需创建存储卷。
在 DigitalOcean指导教程中,持久卷声明模板如下:
volumeClaimTemplates:
- metadata:
name: data
labels:
app: elasticsearch
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: do-block-storage
resources:
requests:
storage: 100Gi
Run Code Online (Sandbox Code Playgroud)
在这里,StorageClass是do-block-storage. 您可以将其替换为您自己的存储类别
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |