首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何最好地将只读数据资产交付给Kubernetes应用程序?

如何最好地将只读数据资产交付给Kubernetes应用程序?
EN

DevOps用户
提问于 2020-05-01 16:42:43
回答 1查看 47关注 0票数 2

我正在将一个HPC应用程序迁移到Kubernetes,并试图确定提供只读数据资产作为配置托管快照的最佳方法。

以前,我的团队已经将我们的应用程序作为一组RPM交付了,但是当我们转移到Kubernetes时,我们正在交付Docker映像。这对于我们的应用程序二进制很好,因为我们可以提供一个已知的工作映像,而不是一堆所有必须同意的RPM。

然而,问题在于我们的只读数据资产(类似于游戏的资产文件)。几个不同的Docker映像可能依赖于一组数据资产,因此我们不希望将它们烘焙成实际的Docker映像本身(另外,我们希望能够在不必重新编译应用程序映像的情况下更改资产)。

我们不确定这方面的最佳方法。第一个想法是创建一个只运行NFS并提供数据的“数据容器”。这成功地将数据从应用程序中分离出来,并允许我们将一组数据RPM折叠成一个标记的停靠映像,但在我看来,这似乎有点过火了。

我知道我们实际上是在为Kubernetes寻找一个持久的卷,但问题是将所有的数据打包到一个包中,这个包具有与Docker映像相同的交付方便性。

Is还有一种更好的方法来提供这些只读数据作为版本控制的快照?

EN

回答 1

DevOps用户

发布于 2020-05-01 19:35:19

我们不希望将它们烘焙成实际的Docker映像本身(另外,我们希望能够在不需要重新编译应用程序映像的情况下更改资产)。

这的确是一个很好的特性。你走在正确的轨道上。

然而,问题在于我们的只读数据资产(类似于游戏的资产文件)。

这个问题可以通过多种解决方案来解决,很难说什么是对你最好的。以下是一些替代方案。

Persistent卷- ReadOnlyMany

我知道我们实际上是在为Kubernetes寻找一个持久的卷,但问题是将所有的数据打包到一个包中,这个包具有与Docker映像相同的交付方便性。

是的,您可以使用持久体积创建一个接入方式

代码语言:javascript
复制
accessModes:
- ReadWriteOnce
- ReadOnlyMany

然后(通过一个自动的过程)

  1. 使用访问模式工作将数据加载到卷中
  2. 使用访问模式ReadOnlyMany将卷加载到您的荚/服务

并且保持卷不可变,在需要更改内容时创建一个新的卷。您也可以这样使用多个卷。

CDN

我们的只读数据资产(类似于游戏的资产文件)。

这在本质上也听起来像内容传送网络通常提供的服务。但这取决于您的用例是否是一个好的解决方案。

例如,CDN的数据通常由云提供商的“存储桶”存储,这也是一种选择,然后应用程序通常使用HTTP加载数据。如果您想在集群中这样做,米诺可能是另一种选择。

票数 1
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/11482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档