删除实例
删除 ClickHouseInstallation 会移除工作负载。是否会移除你的数据取决于你创建实例时设置的回收策略。删除任何重要数据前,请先阅读回收部分。
停止而不是删除
如果你只想释放计算资源,请停止实例,而不是删除它:
这会在每个 StatefulSet 上设置 Replicas: 0。Pod 和实例 Service 会被移除;PVC 会保留。将 stop 设置回 "0" 会重新创建 Pod,并重新挂载保留的卷。
删除
资源不会立即消失。operator 会在其管理的每个实例上安装 finalizer finalizer.clickhouseinstallation.altinity.com。因此,API server 会将对象标记为待删除并等待;operator 执行拆除流程,随后才会移除 finalizer,使对象得以删除。
拆除流程进行期间,状态会报告 Terminating。
删除顺序
operator 按固定顺序拆除实例:
- 删除 PodDisruptionBudget。
- 停止监控实例,使 metrics exporter 将其移除。
- 删除实例范围的 Service。
- 请求每个主机同步其表,以便在 Pod 消失前刷新正在传输中的复制数据。
- 删除每个集群;该操作会向下遍历到每个主机,并依次删除 StatefulSet、PVC、主机 ConfigMap 和主机 Service。
- 删除实例范围的 ConfigMap。
- 移除 finalizer。
StatefulSet 会以优雅方式移除——operator 会先将其缩放到零,而不是直接删除。
卷是否会保留
默认情况下会删除卷。对于每个 PVC,operator 会解析生成该 PVC 的 volume claim template 的回收策略。当该策略为 Delete 时,operator 会删除 PVC;对于无法解析或未使用模板的 PVC,也会将其视为 Delete。
若要在删除实例后保留数据,请在删除前将策略设置为 Retain:
该枚举接受 ""、Retain 和 Delete;CRD 将 Retain 描述为在删除 StatefulSet 时保留 PVC。该策略也可以针对每个 volume claim template 单独设置,这样便可以保留数据卷,同时允许删除日志卷。
发出删除命令后再更改 reclaimPolicy 已经太迟。请先设置该字段,确认它已存在于线上对象中,然后再执行删除。
验证清理结果
需要关注的是 PVC 列表。如果你原本希望使用 Retain,但 PVC 已经消失,则说明该策略未生效。
如果资源无法删除
ClickHouseInstallation 卡在 Terminating 中,几乎总是意味着 operator 未运行,或未监视该命名空间,因此没有人移除 finalizer。请先检查 operator Pod:
命名空间范围由 operator 配置键 watch.namespaces 决定;空列表表示所有命名空间。
ClickHouse 是 ClickHouse, Inc. 的注册商标。https://clickhouse.com
Alauda 是独立供应商。本产品与 ClickHouse, Inc. 没有关联,也未获得其认可或赞助。所有商标均归其各自所有者所有,此处使用商标仅用于识别目的。