繁体   English   中英

在 Kubernetes 中挂载一个大文件

[英]Mounting a large file in Kubernetes

我们在 Kubernetes 中运行一个 pod,它需要在运行时加载一个文件。 该文件具有以下属性:

  • 在构建时已知
  • 它应该由多个 pod(相同类型)以只读方式安装
  • 它可能会更改(在集群外部)并且需要更新
  • 由于各种原因(安全是主要问题),该文件不能位于 docker 映像中
  • 它可能非常大,理论上可达 100 MB,但实际上在 200kB - 10MB 之间。

我们考虑了各种选择:

  • 创建持久卷,将卷挂载到临时 pod 中以写入(更新)文件,卸载卷,然后将其挂载到具有 ROX(只读多重)声明的服务中。 这个解决方案意味着我们在升级过程中需要停机,而且很难自动化(由于时间问题)。
  • 使用 Kubernetes 的秘密管理创建多个秘密,然后在将文件加载到 init-container 或类似的东西之前“组装”文件。

这两种解决方案都感觉有点被黑了——有没有更好的解决方案可以用来解决这个问题?

您需要使用支持读/写多个 Pod 的共享文件系统。 Here is a link to the CSI Drivers which can be used with Kubernetes and provide those access: https://kubernetes-csi.github.io/docs/drivers.html

理想情况下,您需要一个不是设备的解决方案,并且可以在任何地方运行,这意味着它可以在云中或本地运行。

可以为您工作的平台是 Ceph、GlusterFS 和 Quobyte(免责声明,我为 Quobyte 工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM