kubernetes persistentVolumeClaim保留机制

1. 默认

StatefulSet删除以后,对应的pvc默认是会保存的。

2. 控制

  在 1.23 以后,有可选 .spec.persistentVolumeClaimRetentionPolicy 字段控制在 StatefulSet 的生命周期中是否保留或者删除 PVC。
  您必须启用 StatefulSetAutoDeletePVC feature gate 才能使用此字段。启用后,您可以为每个 StatefulSet 配置两个策略:

  • whenDeleted:配置删除 StatefulSet 时应用的卷保留行为。
  • whenScaled:配置当 StatefulSet 的副本数减少时应用的卷保留行为。

对于上面两个策略,可以将值设置为 Delete 或 Retain。

  • Delete:对于受策略影响的每个Pod,将删除从 StatefulSet volumeClaimTemplate 创建的PVC。使用 whenDeleted 策略,volumeClaimTemplate 中的所有PVC 将在其 Pod 被删除后被删除。使用 whenScaled 策略,在删除 Pod 副本后,仅删除与正在缩小的 Pod 副本相对应的PVC。
  • Retain(默认):volumeClaimTemplate 中的 PVC 在其 Pod 被删除时不受影响。1.23 之前版本也是这样的行为。

配置方式如下:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rabbitmq
  namespace: rabbitmq
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Delete
    whenScaled: Delete

没有测试过,仅记录一下。

posted @ 2023-04-13 14:32  若-飞  阅读(232)  评论(0编辑  收藏  举报