ETCD需要定期维护,否则会因为磁盘空间增长到自定义的上限而崩溃
参考资料:
https://wiki.shileizcc.com/confluence/pages/viewpage.action?pageId=60227631
https://doczhcn.gitbook.io/etcd/index/index-1/maintenance
问题描述:ETCD的日常运行会保留键空间历史记录,随着使用不断占用磁盘空间,ETCD默认设置日志占用磁盘2G。如果超过这个设定值会触发集群级警告,这将使得系统进入有限操作的维护模式。此时只能进行读取操作,如果继续不进行管理ETCD会自行崩溃。
如果用K8S部署Bitnami/etcd,就会发现etcd部署完成之后运行一段时间(半个月?)就会进入不断奔溃自重启的状态。
解决方法:
- 手动清理
- 自动清理:
# 只保留1小时内的键空间历史版本
etcd --auto-compaction-retention=1
# helm 部署 etcd 设定参数
autoCompactionRetention=1m
# helm 部署 apisix 设定etcd参数
etcd.autoCompactionRetention=1m
K8S部署Bitnami/etcd集群,当pod奔溃后无法自动加入集群。
参考资料:
https://halo.ljdzsk.com/archives/apisix-de-keng
https://github.com/apache/apisix-helm-chart/issues/290
报错日志:member not found
原因分析:pod重启之后相当于一个新的etcd服务,其中的key已经不可用,所以无法加入集群。
解决方法:设定集群数量=1