我需要可从多个 pod 访问的共享卷,以便在每个节点上的 RAM 中缓存文件。
问题是emptyDir
卷配置器(支持Memory
作为其medium
)Volume
规范中可用,但在规范中不可用PersistentVolume
。
除了在每个主机上手动创建一个tmpfs
卷并通过 PV 规范中的local
或hostPath
配置器挂载它之外,有什么方法可以实现这一点吗?
请注意,Docker 本身支持这样的卷:
docker volume create --driver local --opt type=tmpfs --opt device=tmpfs
--opt o=size=100m,uid=1000 foo
我看不出 k8s 没有任何理由不这样做。或者也许确实如此,但并不明显?
我尝试玩local
,并用mountOptions
hostPath
PV,但没有奏效。
EmtpyDir 与 Pod 的生命周期相关联,因此无法通过与多个 Pod 共享来使用。 您请求的是附加功能,如果您查看下面的 github 讨论,您会发现您不是第一个要求此功能的人。
考虑 TMPFS 存储类
另外,根据您提到的docker supports this tmpfs volume
,是的,它支持,但是您不能在容器之间共享此卷。从文档
TMPFS 挂载的限制:
与卷和绑定装载不同,您不能 在容器之间共享 TMPFS 挂载。