Helm 推荐方法中的持久卷、声明和副本
Persistent Volumes & Claims & Replicas in Helm recommended approach
我正在努力了解 Persistent Volumes 和 Persistent Volume Claims 以及它应该如何在 Helm 中完成...
问题的 TLDR 版本是:如何在 helm 中创建一个 PVC,我可以将未来的版本(无论是升级还是全新安装)附加到?
我目前的理解:
PV 是一块物理存储的接口。
PVC 是 pod 声称存在 PV 供自己使用的方式。当 pod 被删除时,PVC 也被删除,但 PV 被保留 - 因此被持久化。但是我又该如何使用它呢?
我知道可以动态提供 PV。以Google Cloud为例,如果你创建ONLY a PVC,它会自动为你创建一个PV。
现在这是我坚持的部分...
我创建了一个显式创建 PVC 的 helm chart,因此有一个动态创建的 PV 作为发布的一部分。然后我稍后 删除 版本,这也会删除 PVC。云提供商将维护 PV。在随后安装具有新版本的同一图表时...我如何重用旧 PV?有没有办法真正做到这一点?
我确实找到了 this question 哪种答案...但是,这意味着您需要为您将需要的每个 PVC 预先创建 PV,以及副本的全部意义&自动缩放是所有这些都应该按需生成。
用例一如既往地用于 test/dev 环境,我希望我的数据能够持久保存,但我并不总是希望服务器 运行.
提前致谢!我的脑袋有点疼,因为我想不通...>.<
确实会很头疼。
让我们从您应该如何使用 RWO 存储实现可扩展部署开始,这些存储在启动时附加到您的单个 pods。这就是 volumeClaimTemplates 发挥作用的地方。您可以在部署扩展时动态创建 PVC。然而,当您的 pod 需要附加到 pod 的存储,但当 pod 消失时不再真正需要时,这非常适合这种情况(可以按照回收策略重用卷。
如果你需要在 pod 失败时重新连接这样的数据,你应该考虑至少解决这部分问题的 StatefulSets。
现在,如果您显式预先创建 PVC,则可以更好地控制所发生的情况,但对于 RWO,动态可伸缩性会出现问题。这个和你链接的响应中的手动 PV 管理实际上可以实现卷重用,这是我能想到的唯一允许它的机制。
像这样碰壁后,是时候考虑替代方案了。例如,为什么不使用 StatefulSet 来为您提供 运行 集群中的存储保留,而不是删除图表,将其所有副本设置为 0,保留非计算资源但将其缩减为零。然后当你放大一个仍然绑定的 PVC 应该重新连接到重新缩放 pods.
我正在努力了解 Persistent Volumes 和 Persistent Volume Claims 以及它应该如何在 Helm 中完成...
问题的 TLDR 版本是:如何在 helm 中创建一个 PVC,我可以将未来的版本(无论是升级还是全新安装)附加到?
我目前的理解:
PV 是一块物理存储的接口。 PVC 是 pod 声称存在 PV 供自己使用的方式。当 pod 被删除时,PVC 也被删除,但 PV 被保留 - 因此被持久化。但是我又该如何使用它呢?
我知道可以动态提供 PV。以Google Cloud为例,如果你创建ONLY a PVC,它会自动为你创建一个PV。
现在这是我坚持的部分...
我创建了一个显式创建 PVC 的 helm chart,因此有一个动态创建的 PV 作为发布的一部分。然后我稍后 删除 版本,这也会删除 PVC。云提供商将维护 PV。在随后安装具有新版本的同一图表时...我如何重用旧 PV?有没有办法真正做到这一点?
我确实找到了 this question 哪种答案...但是,这意味着您需要为您将需要的每个 PVC 预先创建 PV,以及副本的全部意义&自动缩放是所有这些都应该按需生成。
用例一如既往地用于 test/dev 环境,我希望我的数据能够持久保存,但我并不总是希望服务器 运行.
提前致谢!我的脑袋有点疼,因为我想不通...>.<
确实会很头疼。
让我们从您应该如何使用 RWO 存储实现可扩展部署开始,这些存储在启动时附加到您的单个 pods。这就是 volumeClaimTemplates 发挥作用的地方。您可以在部署扩展时动态创建 PVC。然而,当您的 pod 需要附加到 pod 的存储,但当 pod 消失时不再真正需要时,这非常适合这种情况(可以按照回收策略重用卷。
如果你需要在 pod 失败时重新连接这样的数据,你应该考虑至少解决这部分问题的 StatefulSets。
现在,如果您显式预先创建 PVC,则可以更好地控制所发生的情况,但对于 RWO,动态可伸缩性会出现问题。这个和你链接的响应中的手动 PV 管理实际上可以实现卷重用,这是我能想到的唯一允许它的机制。
像这样碰壁后,是时候考虑替代方案了。例如,为什么不使用 StatefulSet 来为您提供 运行 集群中的存储保留,而不是删除图表,将其所有副本设置为 0,保留非计算资源但将其缩减为零。然后当你放大一个仍然绑定的 PVC 应该重新连接到重新缩放 pods.