12.3. 从持久性卷中恢复集群
如果持久性卷(PV)仍然存在,您可以从它们恢复 Kafka 集群。
您可能想要执行此操作,例如:
- 命名空间被意外删除
- 整个 OpenShift 集群会丢失,但 PV 会保留在基础架构中
12.3.1. 从命名空间删除中恢复
由于持久性卷和命名空间之间的关系,可以从删除命名空间中进行恢复。A PersistentVolume
(PV)是位于命名空间外的存储资源。PV 使用 PersistentVolumeClaim
(PVC)挂载到 Kafka pod 中,该 PVC 驻留在一个命名空间内。
PV 的重新声明(reclaim)策略指定了在删除命名空间时集群如何操作。如果重新声明策略被设置为:
- 删除 (默认)当 PVC 在命名空间中被删除时会删除 PV
- 保留,在删除命名空间时不会删除 PV
为确保意外删除命名空间时,您可以从 PV 中恢复该策略,必须在 PV 规格中使用 persistentVolumeReclaimPolicy
属性重置该 策略 :
apiVersion: v1
kind: PersistentVolume
# ...
spec:
# ...
persistentVolumeReclaimPolicy: Retain
另外,PV 可以继承关联的存储类的重新声明策略。存储类用于动态卷分配。
通过为存储类配置 reclaimPolicy
属性,使用存储类的 PV 会使用适当的重新声明策略创建。使用 storageClassName
属性为 PV 配置存储类。
apiVersion: v1 kind: StorageClass metadata: name: gp2-retain parameters: # ... # ... reclaimPolicy: Retain
apiVersion: v1
kind: PersistentVolume
# ...
spec:
# ...
storageClassName: gp2-retain
注意
如果您使用 Retain 作为重新声明策略,但要删除整个集群,则需要手动删除 PV。否则它们将不会被删除,并可能导致不必要的资源开支。