繁体   English   中英

Elasticsearch 部署在 kubernetes 上使用持久卷

[英]Elasticsearch deployment on kubernetes using Persistent Volume

我正在尝试使用 kubernetes 中的 Statefulset 部署 Elasticsearch 集群(replicas: 3) ,并且需要将 Elasticsearch 数据存储在持久卷(PV)中。 由于每个 Elasticsearch 实例都有自己的数据文件夹,因此我需要为 PV 中的每个副本设置单独的数据文件夹。 我正在尝试使用volumeClaimTemplatesmountPath: /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 classvolumeClaimTemplates中:

    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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM