我有一个遗留应用程序,它将一些config/stats存储在OS分区上的一个目录中(例如/config/),并且我试图在Kubernetes集群中作为有状态容器运行它。
我可以将它作为一个容器运行,但是由于容器固有的短暂性,无论我的容器写到OS分区目录/config/的数据在容器崩溃/销毁时丢失了。
我的Kubernetes部署文件的编写方式使容器恢复活力,尽管它是在同一主机上或在另一主机上作为一个新实例编写的,但是这个新容器无法访问容器的前一个实例编写的数据。
如果它是一个停靠容器,我可以使用绑定挂载来实现这个功能,这样容器写入到其OS分区目录的任何数据都会保存在主机目录上,这样任何新实例都可以访问由前一个实例编写的数据。
但我在库伯内特斯找不到任何替代办法。
我可以使用主机路径配置,但是主机路径配置现在只适用于单节点kubernetes集群。
有什么方法可以让这个在多节点Kubernetes集群中工作吗?除了主机路径配置之外,还有其他选项吗?我可以让容器彼此交谈并同步--节点之间的数据,但是我们如何绑定--将主机目录挂载到容器?
谢谢你提前帮忙!
发布于 2017-11-08 13:07:00
这就是你的定义中有卷和VolumeMounts的地方。您在hostPath方面的领先方向是正确的,但是当您在集群中承载数据时(正如您自己所看到的),您需要不同的卷类型。
查看https://kubernetes.io/docs/concepts/storage/volumes/以获得支持的存储后端列表。根据您的基础设施,您可能会找到一个适合您的需求,或者您可能需要实际创建一个支持服务(即。NFS服务器、Gluster、Ceph等)。
如果您想要添加另一个抽象层,以生成可以在不同环境中工作的通用清单(即。基于云提供商的存储,或者仅仅根据特定的需求手动提供)。您可能想熟悉PV和PVC (https://kubernetes.io/docs/concepts/storage/persistent-volumes/),但正如我所说的,它们是基本卷的抽象,所以您需要解决第一个问题。
https://stackoverflow.com/questions/47176005
复制相似问题