如何将主机路径装载到有状态集中?

问题描述

当我事先不知道节点名称时(如何不能在每个节点上预先创建PV),如何将hostPath安装到有状态集中的每个Pod中?

我想在多个节点上建立一个Elasticsearch集群,将每个elasticsearch数据目录安装到主机节点的SSD上...

如何使用有状态集来完成此操作?

解决方法

对于这种用例,应使用Local Persistent Volume代替 HostPath Volume

最大的区别是Kubernetes调度程序可以了解本地持久卷属于哪个节点。对于HostPath卷,调度程序可能会将引用HostPath卷的pod移到其他节点,从而导致数据丢失。但是,借助本地持久卷,Kubernetes调度程序可确保始终将使用本地持久卷的容器调度到同一节点。

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