在Kubernetes

时间:2017-11-08 09:30:29

标签: docker kubernetes

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

我能够将其作为容器运行,但由于容器固有的短暂性质,当容器停止/销毁时,我的容器写入操作系统分区目录/ config /的任何数据都会丢失。

我有Kubernetes部署文件的编写方式使容器恢复生机,尽管是在同一主机或另一台主机上的新实例,但是这个新容器无法访问之前写入的数据容器的实例。

如果它是一个docker容器,我可以使用bind-mounts来实现这一点,这样容器写入其OS分区目录的任何数据都保存在主机目录中,这样任何新实例都可以访问写入的数据按前一个例子。

但我在Kubernetes找不到任何替代方案。

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

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是POD定义中包含Volumes和VolumeMounts的内容。关于hostPath的主要方向是正确的方向,但是当您在群集中托管数据时,您需要不同的卷类型(如您所见)。

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

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