gpt4 book ai didi

kubernetes - 为什么我应该使用 Kubernetes Persistent Volumes 而不是 Volumes

转载 作者:行者123 更新时间:2023-12-04 14:57:23 36 4
gpt4 key购买 nike

要在 Kubernetes POD 中使用存储,我可以使用 volumespersistent volumes .而卷像emptyDir是短暂的,我可以使用 hostPath以及许多其他基于云的卷插件,它们将在卷本身中提供持久的解决方案。
在那种情况下,我为什么要使用 Persistent Volume 呢?

最佳答案

了解 Volumes 之间的主要区别非常重要。和 PersistentVolumes .两者 VolumesPersistentVolumes是 Kubernetes 资源,它提供了数据存储设施的抽象。

  • Volumes :让您的 pod 写入文件系统,只要 pod 存在,该文件系统就存在。它们还允许您在同一个 pod 中的容器之间共享数据,但是当 pod 重新启动时,该卷中的数据将被破坏。 Volume将存储与容器分离。它的生命周期与 Pod 相关联。
  • PersistentVolumes :用作 Kubernetes 集群中的长期存储。它们存在于容器、Pod 和节点之外。 Pod 使用持久卷声明来获取对持久卷的读写访问权限。 PersistentVolume将存储与 Pod 分离。它的生命周期是独立的。它支持安全的 pod 重启和 pod 之间的数据共享。

  • 说到 hostPath :

    A hostPath volume mounts a file or directory from the host node'sfilesystem into your Pod.

    hostPath有它的使用场景,但总的来说,由于以下几个原因,可能不推荐使用:
  • 由于节点上的文件不同,具有相同配置(例如从 PodTemplate 创建)的 Pod 在不同节点上的行为可能不同
  • 在底层主机上创建的文件或目录只能由 root 用户写入。您需要在特权容器中以 root 身份运行您的进程,或者修改主机上的文件权限才能写入 hostPath体积
  • 您并不总是直接控制您的 pod 将在哪个节点上运行,因此您不能保证 pod 会实际调度在具有数据量的节点上。
  • 如果一个节点出现故障,您需要将 pod 安排在其他节点上,在该节点上您的本地配置卷将不可用。
  • hostPath例如,如果您想将它用于在 DaemonSet 中运行的日志收集器,那就太好了。 .
    我推荐 Kubernetes Volumes Guide作为本主题的一个很好的补充。

    关于kubernetes - 为什么我应该使用 Kubernetes Persistent Volumes 而不是 Volumes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67681795/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com