在Kubernetes集群中存储数据的位置

由复制控制器控制并在Kubernetes中的服务后面“隐藏”的pod如何写入/读取数据? 如果我有一个应用程序从用户那里接收需要被保存的图像,我在哪里存储? 由于前面的服务,如果使用卷,我无法控制存储在哪个节点上。

我认为你的问题的“简单”的答案是,你将需要在你的Kubernetes集群共享存储,使每个豆荚访问相同的数据。 那么,pod在哪里运行,哪个pod实际上在执行服务,都无关紧要。

可能是另一个解决scheme将是Flocker ,他们简单描述自己:

Flocker是一个数据卷pipe理器和多主机Docker集群pipe理工具。 有了它,您可以使用您在无状态应用程序中使用的相同工具,通过在Linux上利用ZFS的强大function来控制数据。

无论如何,我认为Kubernetes或任何其他dockerized基础设施的存储问题是非常有趣的。

它看起来像谷歌应用程序引擎不支持在他们的应用程序之间默认共享数据存储,就像他们在这个SO问题中指出的那样

如果您正在Google Compute Engine中运行,则可以使用绑定到该容器的计算引擎永久磁盘(networking附加存储),然后与该容器一起移动:

https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/volumes.md#gcepersistentdisk

我们希望支持其他types的networking连接存储(iSCSI,NFS等),但是我们还没有机会构build它们。 拉请求欢迎! ;)