我正在寻找在同一节点上的 pod 之间共享只读内存缓存的任何现有实现。这种设置将允许快速访问,而无需将整个缓存加载到每个 pod 内存中。
示例:1GB 查找字典保持最新,每个 pod 都具有对数据的读取访问权限,从而允许快速查找而无需有效地将数据克隆到内存中。所以最终结果将是节点上仅使用 1GB 内存,而不是 1GB * N(pod 数量)
k8s的想象解决方案:
- 具有 tmpfs 卷 RW 的单个(守护进程)pod,维护最新的缓存数据
- 具有相同 tmpfs 卷 R(only) 的多个 pod,映射数据文件以读取数据
- 自然地读出值并对其进行操作预计会产生传递内存使用
笔记:
- 我发现了多个关于 pod 之间的卷共享的条目,但没有针对上述内容的完整解决方案参考
- tmpfs 是 R/W 缓存速度的理想选择,但显然它可以超过常规 fs
- 寻找可以是特定语言或不可知论的解决方案以供参考
- 特定语言将利用特定语言将文件数据映射为字典/其他 KV 查找
- 语言不可知和更通用的解决方案可以使用sqlite,在我们这里的例子中,进程是 pod