Adi*_*yan 6 volumes kubernetes persistent-volumes
要使用 Kubernetes POD 内部的存储,我可以使用卷和持久卷。虽然像这样的卷emptyDir是短暂的,但我可以使用hostPath许多其他基于云的卷插件,它们可以在卷本身中提供持久的解决方案。
在这种情况下,我为什么要使用持久卷呢?
了解Volumes和之间的主要区别非常重要PersistentVolumes。和Volumes都是PersistentVolumesKubernetes 资源,提供数据存储设施的抽象。
Volumes:让您的 pod 写入只要 pod 存在就存在的文件系统。它们还允许您在同一 Pod 中的容器之间共享数据,但当 Pod 重新启动时,该卷中的数据将被销毁。Volume将存储与容器解耦。它的生命周期与 Pod 耦合。
PersistentVolumes:充当 Kubernetes 集群中的长期存储。它们存在于容器、pod 和节点之外。Pod 使用持久卷声明来获取对持久卷的读写访问权限。PersistentVolume将存储与 Pod 解耦。它的生命周期是独立的。它支持 Pod 安全重启并在 Pod 之间共享数据。
当涉及到hostPath时:
卷
hostPath将主机节点文件系统中的文件或目录挂载到 Pod 中。
hostPath有它的使用场景,但一般来说可能不推荐,原因如下:
PodTemplate由于节点上的文件不同,具有相同配置(例如从 a 创建)的 Pod在不同节点上的行为可能会有所不同
在底层主机上创建的文件或目录只能由 root 写入。您需要在特权容器中以 root 身份运行进程,或者修改主机上的文件权限以便能够写入hostPath卷
您并不总是直接控制 pod 将在哪个节点上运行,因此您不能保证 pod 实际上会调度到具有数据量的节点上。
如果某个节点出现故障,您需要将 pod 调度到本地配置的卷不可用的其他节点上。
例如hostPath,如果您想将它用于在DaemonSet.
我推荐Kubernetes Volumes Guide作为本主题的一个很好的补充。
小智 0
PersistentVoluemes是集群范围的存储,允许您更集中地管理存储。
当您配置volume(使用hostPath或任何基于云的卷插件)时,您需要在 POD 定义文件中进行此配置。配置卷存储所需的每个配置信息都位于 POD 定义文件中。
当您拥有包含大量用户和大量 POD 的大型环境时,用户每次都必须为其部署的每个 POD 配置存储。无论使用什么存储解决方案,部署 POD 的用户都必须在他/她的所有 POD 定义文件上配置该存储。如果需要进行更改,则用户必须在他/她的所有 POD 上进行此更改。达到一定规模后,这并不是管理存储的最佳方式。
相反,您希望集中管理它。您希望以管理员可以创建大型存储池并且用户可以根据需要划分出该存储的一部分的方式来管理存储,而这正是您可以使用PersistentVolumes和执行的操作PersistentVolumeClaims。
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |