【问题标题】:Kubernetes: in-memory volume shared between podsKubernetes:在 Pod 之间共享的内存卷
【发布时间】:2019-03-11 01:03:22
【问题描述】:

我需要一个可从多个 pod 访问的共享卷,用于在每个节点的 RAM 中缓存文件。

问题在于emptyDir 卷配置器(支持Memory 作为其medium)在Volume 规范中可用,但在PersistentVolume 规范中不可用。

除了在每个主机上手动创建一个tmpfs 卷并通过PV 规范中的localhostPath 配置器安装它之外,有什么方法可以实现这一点?

请注意,Docker 本身支持此类卷:

docker volume create --driver local --opt type=tmpfs --opt device=tmpfs \
       --opt o=size=100m,uid=1000 foo

我看不出 k8s 不这样做的任何原因。或者可能有,但并不明显?

我尝试用mountOptionslocalhostPath PV,但没有成功。

【问题讨论】:

    标签: linux docker kubernetes tmpfs


    【解决方案1】:

    EmtpyDir 与 pod 的生命周期相关联,因此不能通过与多个 pod 共享的方式使用。 您要求的是附加功能,如果您查看下面的 github 讨论,您会发现您不是第一个要求此功能的人。

    consider a tmpfs storage class

    还根据您提到的docker supports this tmpfs volume,是的,它支持,但是您不能在容器之间共享此卷。来自Documentation

    tmpfs 挂载的限制:

    与卷和绑定挂载不同,您不能 在容器之间共享 tmpfs 挂载。

    【讨论】:

    • 关于 Docker:foo 是一个卷,因此可以在容器之间共享。我已经检查过了,它可以工作。
    猜你喜欢
    • 2019-03-14
    • 2021-04-04
    • 2020-09-15
    • 2019-03-11
    • 2019-10-26
    • 2021-12-24
    • 1970-01-01
    • 2019-01-16
    • 2016-05-23
    相关资源
    最近更新 更多