【发布时间】:2021-08-11 17:21:51
【问题描述】:
PersistentVolume (PV) 是集群中已配置的一块存储...它是集群中的资源,就像节点是集群资源一样...
所以我正在阅读所有当前可用的 PV 的 plugins 并且我知道对于 3rd 方/集群外存储这并不重要(例如将数据存储在 EBS、Azure 或 GCE 磁盘中),因为那里在集群中添加或删除节点时没有影响或影响很小。但是,也有不同的,例如(忽略 hostPath,因为它仅适用于单节点集群):
- CSI
- 本地
其中(至少从我在文档中读到的内容)不需要第 3 方供应商/软件。
但是also:
...本地卷取决于底层节点的可用性,并不适合所有应用程序。如果节点变得不健康,则 pod 将无法访问本地卷。使用此卷的 pod 无法运行。使用本地卷的应用程序必须能够容忍这种可用性降低以及潜在的数据丢失,具体取决于底层磁盘的持久性特征。
如果不使用外部静态配置器来管理卷生命周期,则本地 PersistentVolume 需要用户手动清理和删除。
用例
假设我有一个带有单个 local PV 的单节点集群,并且我想向集群中添加一个新节点,所以我有一个 2 节点集群(为简单起见,数字很小)。
是否将来自已经存在的local PV 的数据 1:1 复制到新节点中,就像拥有一个具有 2 个冗余节点的 PV 一样,还是仅严格绑定到现有节点?
如果已经存在的 PV 无法从 1 个节点调整到 2 个节点,是否可以创建一个 新 PV(从头开始创建),以便在集群上的 2 个以上节点之间进行 1:1 复制?
如果不是,那么在不使用第 3 方集群外解决方案的情况下,正确的方法是什么?使用csi 会导致整体方法发生任何变化,还是与冗余相同,只是引擎盖下的“引擎”不同?
【问题讨论】:
标签: kubernetes persistent-storage