目标
etcd 数据库体积增长而对象数不变,说明存在碎片并可能拖慢操作。本配方先备份,再用 etcdctl endpoint status 查看数据库大小与是否需要整理,随后逐个成员执行 defrag,避免影响领导者并监控集群健康;提醒 defrag 不会删除旧修订,仍需先 compact。
步骤要点
- 先备份再查看 endpoint status 与大小。
- 逐个成员执行 defrag。
- 先 compact 修订再 defrag 释放空间。
- 在每次整理之间检查集群健康。
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key endpoint status -w table
排错提示
- 整理期间该成员会短暂阻塞。
- 仅 defrag 不删除旧修订。
- 不应先整理领导者。
适用边界
- 需要 TLS 凭据。
- 不减少修订数量。