![](/img/trans.png)
[英]Persistent Volume mapping in Elasticsearch cluster using Kubernetes
[英]Elasticsearch deployment on kubernetes using Persistent Volume
我正在尝试使用 kubernetes 中的 Statefulset 部署 Elasticsearch 集群(replicas: 3)
,并且需要将 Elasticsearch 数据存储在持久卷(PV)中。 由于每个 Elasticsearch 实例都有自己的数据文件夹,因此我需要为 PV 中的每个副本设置单独的数据文件夹。 我正在尝试使用volumeClaimTemplates
和mountPath: /usr/share/elasticsearch/data
但这会导致错误: pod has unbound immediate PersistentVolumeClaims
。 因此,我如何使用 Statefulset 来实现这一点?
提前致谢。
如果您使用的是动态配置,那么您可以在后端自动创建卷,例如磁盘是 Azure 中 PV 的存储(用于 Read Write Once 类型的操作),否则您需要手动创建它
创建卷后,只需在大小与 pv 匹配的适当命名空间中创建一个 pvc,然后您只需在 pvc 定义中传递卷名,它将自动绑定。
你可以试试这样的 -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: claimName
namespace: namespace
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: default
volumeName: pv-volumeName
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
如果您仍然遇到问题,请分享
但是,没有关于您如何尝试安装弹性搜索的信息:作为示例,请遵循:
根据 StatefulSet 的文档 - 限制:
给定 Pod 的存储必须由 PersistentVolume Provisioner 基于请求的存储 class 进行配置,或者由管理员预先配置。
这看起来像您的示例,动态存储配置问题。
请验证存储 class,如果 pv 和 pvc 已创建并绑定在一起,并将storage class
在volumeClaimTemplates
中:
volumeMounts:
- name: "elasticsearch-master"
mountPath: /usr/share/elasticsearch/data
volumeClaimTemplates:
- metadata:
name: elasticsearch-master
spec:
accessModes:
- ReadWriteOnce
storageClassName: name #please refer to this settings to see if you are using default storage class. In other case you should spceify this parameter manually
resources:
requests:
storage: 30Gi
希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.