繁体   English   中英

在Kubernetes中的主机和Pod容器之间绑定挂载卷

[英]Bind mount volume between host and pod containers in Kubernetes

我有一个遗留应用程序,它将一些config/stats存储在OS分区上的目录之一(例如/ config /)中,并且我试图在Kubernetes集群中将其作为有状态容器运行。

我能够将其作为容器运行,但是由于容器固有的短暂特性,当容器发生故障/销毁时,我的容器写入OS分区目录/ config /的所有数据都会丢失。

我以这样的方式编写了Kubernetes部署文件,即使该容器恢复了活力,尽管它是在同一主机上或在另一主机上的新实例,但是此新容器无法访问该容器的先前实例写入的数据。容器。

如果它是一个docker容器,我可以使用bind-mounts进行工作,以便将该容器写入其OS分区目录的所有数据保存在主机目录中,以便任何新实例都可以访问由先前实例写入的数据。

但是我在Kubernetes中找不到其他选择。

我可以使用主机路径置备,但是主机路径置备现在仅适用于单节点kubernetes集群。

有什么办法可以使它在多节点Kubernetes集群中工作吗? 除了主机路径配置之外,还有其他选择吗? 我可以使容器相互通信并在节点之间同步数据,但是如何将主机目录绑定安装到容器?

谢谢您的帮助!

这就是POD定义中要使用的Volumes和VolumeMounts。 关于hostPath的线索是正确的方向,但是在群集中托管数据时(如您所见,您需要一个不同的卷类型)。

查看https://kubernetes.io/docs/concepts/storage/volumes/ ,以获取受支持的存储后端列表。 根据您的基础架构,您可能会找到一个适合您需求的基础架构,或者您可能需要为其中一个基础架构创建后备服务(即NFS服务器,Gluster,Ceph等)。

如果要添加另一个抽象层来制作可以在不同环境下工作的通用清单(即,基于云提供商的存储,或者仅根据特定需求手动配置)。 您可能想熟悉PV和PVC( https://kubernetes.io/docs/concepts/storage/persistent-volumes/ ),但是正如我所说的,它们本质上是对基本卷的抽象,因此您需要破解无论如何,第一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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