一尘不染

如何在Kubernetes Pod之间共享存储?

docker

我正在评估Kubernetes作为我们新应用程序的平台。现在,一切看起来都非常令人兴奋!但是,我遇到了一个问题:我将群集托管在GCE上,并且需要某种机制在两个Pod之间共享存储(连续集成服务器和应用程序服务器)。用kubernetes做到这一点的最佳方法是什么?这些卷类型似乎都不符合我的需求,因为如果一个Pod需要写入GCE磁盘,则无法共享。NFS是完美的,但似乎需要为kubernetes集群使用特殊的构建选项?

编辑:共享存储似乎是我现在使用Kubernetes多次遇到的问题。在多个用例中,我只想拥有一个卷并将其连接到多个Pod(具有写访问权限)。我只能假设这将是一个常见的用例,不是吗?

EDIT2:例如,此页面描述了如何设置Elasticsearch集群,但是无法其与持久性存储进行连接(如此处所述),这会使它变得毫无意义:(


阅读 1957

收藏
2020-06-17

共1个答案

一尘不染

回答这个问题有点晚了,但是根据我到目前为止对Kubernetes /
MSA的经验,这里的问题更多是在您的设计模式中。MSA中经常出现的基本设计模式之一是对服务的正确封装,其中还包括其数据。

您的服务应照顾与其关注领域相关的数据,并且与OOP一样,应允许通过接口(API,PUBSUB消息等)将该数据访问到其他服务。对数据的多服务访问类似于OOP中的全局变量。

我认为Google也有同样的看法,这就是Kubernetes以此方式建立的原因。

例如,如果您要写日志,则应该有一个日志服务,每个服务都可以调用该服务并记录需要记录的相关数据。直接写入共享磁盘意味着,如果您更改日志目录结构等,或决定添加其他功能(如关于错误的电子邮件),则需要更新每个容器。

2020-06-17