4
目前 2.0 ExtensionClient delete 方法只是将资源标记 deletionTimestamp 需要提供一个真实删除自定义模型资源的功能
目前 2.0 ExtensionClient delete 方法只是将资源标记 deletionTimestamp 需要提供一个真实删除自定义模型资源的功能
目前 Extension 的删除仅仅是设置 metadata.deletionTimestamp
而已,并不会物理删除
Extension。之所以这样设计,主要是为了提供一个删除“后处理”逻辑。
实现垃圾回收器的前提是 finalizer 机制,有些资源需要等待系统额外处理完一些事情后,才能物理删除对应的数据,例如:删除某资源前,清理一些本地文件。
Finalizer 机制我们将在 metadata
中添加一个新的成员:finalizers
,例如:
apiVersion: v1alpha1
kind: Fake
metadata:
name: fake
creationTimestamp: 2021-01-01T00:00:00Z
deletionTimestamp: 2022-01-01T00:00:00Z
finalizers:
- theme.halo.run/theme-protection
- halo
垃圾回收器处理序列图如下:
Finalization 状态图如下: