【问题标题】:Auto delete PVC when scaling down?缩小时自动删除PVC?
【发布时间】:2018-07-25 12:49:10
【问题描述】:

当我缩减实例数量时,我正在寻找一种方法来自动删除分配给 StatefulSet 的 Pod 的 PersistentVolumeClaims。有没有办法在 k8s 中做到这一点?我还没有在文档中找到任何内容。

【问题讨论】:

    标签: kubernetes persistent-volume-claims


    【解决方案1】:

    我怀疑 preStop Lifecycle Handler 可以提交 Job 来清理 PVC,假设 Pod 的 ServiceAccountRole 这样做。不幸的是,Lifecycle Handler 文档说 exec 会阻止 Pod 删除,所以这就是为什么从 Pod 的角度来看,无论发生什么都需要是异步的。

    另一种方法可能是使用 CronJob 无条件扫描集群或命名空间并删除未分配的 PVC,或与特定选择器匹配的 PVC。

    但我认为没有任何固有能力可以做到这一点,因为(至少在我自己的使用中)向上和向下缩放 StatefulSet 是合理的,并且在缩放时如果它备份,那么人们实际上会希望 PodStatefulSet 中重新获得其身份,这通常包括任何持久数据。

    【讨论】:

    • 谢谢!两者都是好主意。我最终编写了一个使用 Pod 事件并对其进行操作的操作符。我同意身份,但在我的特殊用例中,PVC 在给定时间后变得陈旧。不过,新的 PVC 是基于更新的快照
    【解决方案2】:

    kubernetes社区有讨论,https://github.com/kubernetes/kubernetes/issues/55045,可以关注一下

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2011-05-17
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      • 1970-01-01
      相关资源
      最近更新 更多