我正在寻找在同一节点上的 Pod 之间共享只读内存缓存的任何现有实现。此设置将允许快速访问,而无需将整个缓存加载到每个 Pod 内存中。
示例:1GB 查找字典保持最新,每个 Pod 都具有对数据的读取访问权限,允许快速查找,而无需有效地将数据克隆到内存中。所以最终结果只是节点上使用了 1GB 内存,而不是 1GB * N(pod 数量)
想象的k8s解决方案:
备注:
您可以使用安装在 hostIPC
上的
hostPath
和/或
tmpfs
,但这会带来一系列问题:
hostPath
本身会带来安全风险,使用时应将范围限定为所需的文件或目录,并以只读方式安装。它还附带一个警告,即不知道谁会被“指控”
对于内存,因此必须配置每个 Pod 才能
吸收它,取决于它是如何写的。它还可能“泄漏”至
根命名空间,不向任何人收费,但显示为“开销”hostIPC
是 Pod 安全策略的一部分
,自 1.21 起已弃用,并将在将来删除一般来说,最好的想法是使用Redis,它是此类场景中最常用的工具之一。