在Kubernetes中为Elasticsearch配置多节点共享存储(ReadWriteMany
)需结合存储后端特性及Elasticsearch架构设计。
由于Elasticsearch默认要求每个节点独立存储数据(ReadWriteOnce
),直接实现多节点共享存储需特殊处理。
方案一:使用支持ReadWriteMany
的存储后端(推荐测试/开发环境)
1. 存储后端选择
- CephFS:原生支持
ReadWriteMany
,适合高性能场景。 - AWS EFS/NFS:通过Kubernetes CSI插件挂载,但需注意Elasticsearch的并发写入限制。
2. 配置步骤(以CephFS为例)
步骤1:创建CephFS StorageClass
# cephfs-sc.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: cephfs-sc
provisioner: cephfs.csi.ceph.com
parameters:clusterID: rook-ceph # Ceph集群IDfsName: myfs # Ceph文件系统名称csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisionercsi.storage.k8s.io/provisioner-secret-namespace: rook-cephcsi.storage.k8s.io/controller-expand-secret