【问题标题】:How can I mount a hostpath into a statefulset?如何将主机路径挂载到有状态集?
【发布时间】:2020-10-17 00:52:34
【问题描述】:

如果我事先不知道节点的名称(因此无法在每个节点上预先创建 PV),如何将 hostPath 挂载到 statefulset 中的每个 pod 中?

我想在多个节点上搭建一个elasticsearch集群,将每个elasticsearch数据目录挂载到宿主节点的SSD上……

如何使用 statefulset 完成此任务?

【问题讨论】:

  • 出于这个原因,我通常建议避免使用hostPath 卷。尤其是如果您在公共云提供商上运行,则其他卷类型可以在集群周围重新定位,并且可以在节点故障后幸免于难。
  • 裸机安装;云更容易,但并非一切都可以在云中运行。
  • 您是否研究过 OpenEBS 等存储解决方案?

标签: elasticsearch kubernetes kubernetes-statefulset


【解决方案1】:

对于这种用例,您应该使用Local Persistent Volume 而不是HostPath Volume

最大的不同是 Kubernetes 调度器了解本地持久卷属于哪个节点。使用 HostPath 卷,引用 HostPath 卷的 pod 可能会被调度程序移动到不同的节点,从而导致数据丢失。但是使用本地持久卷,Kubernetes 调度程序确保使用本地持久卷的 pod 始终被调度到同一个节点。

考虑为此使用local static provisioner,它有Baremetal environments 的说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2019-06-22
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多