gpt4 book ai didi

kubernetes - Helm 推荐方法中的持久卷、声明和副本

转载 作者:行者123 更新时间:2023-12-04 19:27:23 26 4
gpt4 key购买 nike

我正在尝试了解持久卷和持久卷声明以及应该如何在 Helm 中完成...

TLDR 问题的版本是:如何在 helm 中创建一个 PVC,我可以将 future 的版本(无论是升级还是全新安装)附加到?

我目前的理解:

PV 是一 block 物理存储的接口(interface)。
PVC 是 Pod 声明存在供自己使用的 PV 的方式。当 pod 被删除时,PVC 也被删除,但 PV 被维护 - 因此被持久化。但是那我怎么再次使用它呢?

我知道可以动态配置 PV。以 Google Cloud 为例,如果您创建 ONLY a PVC ,它会自动为你创建一个 PV。

现在这是我坚持的部分......

我创建了一个显式创建 PVC 的 Helm 图,因此将动态创建的 PV 作为发布的一部分。然后我稍后删除该版本,这也将删除 PVC。云提供商将维护 PV。在随后使用新版本安装同一图表时...如何重用旧 PV?有没有办法真正做到这一点?

我确实找到了 this question哪种答案...但是,这意味着您需要为需要的每个 PVC 预先创建 PV,而副本和自动缩放的重点是所有这些都应该在要求。

与往常一样,用例是用于测试/开发环境,我希望我的数据被持久化,但我并不总是希望服务器运行。

先感谢您!我的大脑有点痛,因为我就是想不通...>.<

最佳答案

确实会很头疼。

让我们从如何使用 RWO 存储来实现可扩展部署开始,这些存储在单个 pod 启动时附加到它们。这就是 volumeClaimTemplates 发挥作用的地方。您可以在部署扩展时动态创建 PVC。但是,当您的 pod 需要附加到 pod 的存储,但当 pod 消失时不再需要存储时,这非常适合(卷可以按照回收策略重用。

如果您需要在 pod 失败时重新连接此类数据,您应该考虑至少解决该部分的 StatefulSets。

现在,如果您显式地预先创建 PVC,您可以更好地控制发生的事情,但动态可伸缩性对于 RWO 来说会遇到问题。您链接的响应中的这种手动 PV 管理实际上可以实现卷重用,这是我能想到的唯一允许它的机制。

在你遇到这样的一堵墙之后,是时候考虑替代方案了。例如,为什么不使用 StatefulSet 来保留运行集群中的存储空间,而不是删除图表,而是将其所有副本设置为 0,保留非计算资源,但将其缩小到零。然后,当您扩大规模时,仍然绑定(bind)的 PVC 应该重新连接到重新调整的 pod。

关于kubernetes - Helm 推荐方法中的持久卷、声明和副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997793/

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