【发布时间】: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)都会创建这些文件的本地副本,或者可能在两者之间存在缓存(PV 和pod),
我在 google 上搜索过这个问题,但找不到关于这个 PV mount 在 Kubernetes 中如何工作的详细解释,很想知道这个问题背后的真正原因。
【问题讨论】:
标签: kubernetes containers openshift persistent-volumes glusterfs