【发布时间】:2018-07-25 12:49:10
【问题描述】:
当我缩减实例数量时,我正在寻找一种方法来自动删除分配给 StatefulSet 的 Pod 的 PersistentVolumeClaims。有没有办法在 k8s 中做到这一点?我还没有在文档中找到任何内容。
【问题讨论】:
标签: kubernetes persistent-volume-claims
当我缩减实例数量时,我正在寻找一种方法来自动删除分配给 StatefulSet 的 Pod 的 PersistentVolumeClaims。有没有办法在 k8s 中做到这一点?我还没有在文档中找到任何内容。
【问题讨论】:
标签: kubernetes persistent-volume-claims
我怀疑 preStop Lifecycle Handler 可以提交 Job 来清理 PVC,假设 Pod 的 ServiceAccount 有 Role 这样做。不幸的是,Lifecycle Handler 文档说 exec 会阻止 Pod 删除,所以这就是为什么从 Pod 的角度来看,无论发生什么都需要是异步的。
另一种方法可能是使用 CronJob 无条件扫描集群或命名空间并删除未分配的 PVC,或与特定选择器匹配的 PVC。
但我认为没有任何固有能力可以做到这一点,因为(至少在我自己的使用中)向上和向下缩放 StatefulSet 是合理的,并且在缩放时如果它备份,那么人们实际上会希望 Pod 在 StatefulSet 中重新获得其身份,这通常包括任何持久数据。
【讨论】:
kubernetes社区有讨论,https://github.com/kubernetes/kubernetes/issues/55045,可以关注一下
【讨论】: