【问题标题】:Kubernetes: How I do I prevent an emptyDir from deleting all pre-exisitng files in a directory?Kubernetes:如何防止 emptyDir 删除目录中所有预先存在的文件?
【发布时间】:2021-12-21 14:06:04
【问题描述】:

我正在挂载一个emptyDir 卷,因此它可以用于在同一 pod 中运行的容器之间共享文件。假设挂载点称为/var/log/mylogs。当我挂载emptydir 时,mylogs 中的所有预先存在的文件都会被删除。我知道这是 Kubernetes 功能的一部分,但我想知道是否有办法绕过它?我tried using subPath 但它看起来只适用于单个文件。

【问题讨论】:

  • emptyDir 卷类型本质上是短暂的,只要 pod 重新启动,该路径上存储的任何内容都会被删除。我建议使用 pvc 和 subPath。
  • @DashrathMundkar 但是 pvc 会删除所有现有内容吗?多个文件如何与 subPath 一起使用?
  • 这条路径 /var/log/mylogs 是存在于主机(工作节点)上还是仅存在于您的 pod 上?
  • @gohm'c 我相信它只在吊舱中

标签: kubernetes containers kubernetes-pod persistent-volumes volumes


【解决方案1】:

考虑改用PersistentVolumes,因为它在您的 Kubernetes 集群中用作长期存储。它们存在于容器、pod 和节点之外。 Pod 使用持久卷声明来获得对持久卷的读写访问权限。 PersistentVolume 将存储与 Pod 分离。它的生命周期是独立的。它支持安全的 pod 重启和 pod 之间的数据共享。

但是 pvc 会删除所有现有内容吗?多个文件如何与 subPath 一起使用?

当您可以轻松使用PersistentVolumes 时,忘记使用emptryDir 或SubPath 找到任何解决方法。需要数据持久化——一种即使在 Pod 被删除后也能保留数据的机制。

您可以在official documentationhere in a fresh new article 上找到有关PersistentVolumes 的更多有用信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2019-10-20
    • 2015-01-20
    • 1970-01-01
    相关资源
    最近更新 更多