docker - 在 Kubernetes 中挂载一个大文件
问题描述
我们在 Kubernetes 中运行一个 pod,它需要在运行时加载一个文件。该文件具有以下属性:
- 在构建时已知
- 它应该由多个 pod(相同类型)以只读方式安装
- 它可能会更改(在集群外部)并且需要更新
- 由于各种原因(安全性是主要问题),该文件不能位于 docker 映像中
- 它可能非常大,理论上可达 100 MB,但实际上在 200kB - 10MB 之间。
我们考虑了各种选择:
- 创建持久卷,将卷挂载到临时 pod 中以写入(更新)文件,卸载卷,然后将其挂载到具有 ROX(只读多重)声明的服务中。这个解决方案意味着我们在升级过程中需要停机,而且很难自动化(由于时间问题)。
- 使用 Kubernetes 的秘密管理创建多个秘密,然后在将文件加载到 init-container 或类似的东西之前“组装”文件。
这两种解决方案都感觉有点被黑了——有没有更好的解决方案可以用来解决这个问题?
解决方案
推荐阅读
- c# - 带有 unsafe 和 extern 的 C++/CLI 和 C#/VB 有什么区别?
- sql - 在 Postgres 中执行 JOIN 时重复记录
- c++ - ctime 函数的第一个结果总是一个恒定的输出
- eclipse - Eclipse Neon 两次显示实体关系
- json - React 安装出错怎么办
- php - Laravel:种子表有几个属于使用工厂的关系
- javascript - 以编程方式插入值时反应字段 onChange 不会触发(钩子,而不是类)
- python - 如何将整个文件夹导入另一个?
- java - 如何使用 Java 中的 Sugaronrest 通过 API 向 SuiteCRM 中的潜在客户添加电子邮件?
- python - 从 Amazon S3 读取仅具有特定名称的文件