【问题标题】:Is there an intermediate layer/cache between Kubernetes pod and Persistance volume, or does a pod access PV directlyKubernetes Pod 和 Persistent Volume 之间是否有中间层/缓存,或者 Pod 直接访问 PV
【发布时间】:2021-12-25 19:55:42
【问题描述】:

最近我遇到了一个奇怪的问题。我们有两个 pod 运行在一个 openshift 集群中,它们之间共享一个持久卷 (GlusterFs)。 现在为了便于解释,我们假设其中一个 pod 是 PodA,另一个是 PodB,在这种情况下,PodB 运行了三个月,POdA 中有自动创建/更新文件的功能共享持久性音量,PodB 读取它并根据输入执行一些操作。

现在问题来了,每当 POdA 在共享 PV 中创建一个新文件时,它都可以从 PodA 中看到和访问。但是,PodA 会定期更新一些文件,但更改并未反映在 PodB 中。所以在 PodB 中,我们只能看到这些文件的旧版本。为了解决这个问题,我们强行删除了PodB,然后openshift重新创建,问题就解决了。

我认为在PV 机制中,Kubernetes 将外部存储/文件夹挂载到pod(容器)中,并且没有中间层或缓存或类似的东西。从我们目前的经验来看,似乎每个容器(或pod)都会创建这些文件的本地副本,或者可能在两者之间存在缓存(PVpod),

我在 google 上搜索过这个问题,但找不到关于这个 PV mount 在 Kubernetes 中如何工作的详细解释,很想知道这个问题背后的真正原因。

【问题讨论】:

    标签: kubernetes containers openshift persistent-volumes glusterfs


    【解决方案1】:

    Kubernetes 没有为 PV 提供缓存机制,因此您观察到的问题必须位于 GlusterFS CSI 驱动程序或 GlusterFS 本身。

    【讨论】:

    • 如果是 GlusterFS 的问题,那么现有的一个 pod 怎么会正确显示它(文件)(在 PodA 中,我们可以看到变化)。感觉是 PodB 出了问题,运行了三个月。
    猜你喜欢
    • 1970-01-01
    • 2023-01-10
    • 2020-10-24
    • 2021-10-26
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多