在Kubernetes的容器绑定安装

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

我能够运行它作为一个容器,但由于容器的固有临时性,无论我的容器写入操作系统分区目录/ config /的任何数据在容器停机/销毁时都会丢失。

我有Kubernetes部署文件以这样一种方式写的容器恢复生活,尽pipe作为一个新的实例在同一个主机或另一个主机上,但这个新的容器不能访问由先前的实例写入的数据容器。

如果是Docker容器,我可以使用bind-mounts来实现这个function,这样无论容器写入操作系统分区目录的什么数据都保存在主机目录中,这样任何新的实例都可以访问先前实例写入的数据。

但是我在Kubernetes找不到替代品。

我可以使用主机pathconfiguration,但现在主机pathconfiguration仅适用于单节点kubernetes群集。

有没有一种方法可以在多节点Kubernetes集群中工作? 除了hostpathconfiguration以外的任何其他选项? 我可以让容器相互交谈并同步节点之间的数据,但是我们如何将主机目录绑定到容器?

感谢您的帮助提前!

这就是你的POD定义中的Volumes和VolumeMounts。 关于hostPath的主angular是正确的方向,但是当你在一个集群中托pipe数据时,你需要一个不同的卷types(就像你看到你的自己)。

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

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