一、前言
当运行 ETCD
日志报 Erro: mvcc database space exceeded
时,说明ETCD存储不足了(默认ETCD存储是2G),配额会触发告警,然后 Etcd 系统将进入操作受限的维护模式。
通过下面命令可以查看ETCD存储使用情况:
1 | $ ETCDCTL_API=3 etcdctl --endpoints="http://127.0.0.1:2379" --write-out=table endpoint status |
二、临时解决方案
PS: 压缩前做好快照备份,命令
etcdctl snapshot save backup.db
通过 ETCD 数据压缩
来临时解决问题,具体如下操作
1 | # 获取当前版本 |
三、最终解决方案
在 ETCD 启动命令中添加下面两个参数:
1 | # 表示每隔一个小时自动压缩一次 |
四、最佳实践
大家有没有使用过 Kuboard
(Kubernetes 多集群管理界面,官网地址:https://kuboard.cn),如果有使用过的同学可能会遇到ETCD存储不足的问题,因为官网提供的docker镜像中,ETCD启动参数并没有添加 --auto-compaction-retention
和 --quota-backend-bytes
参数。
修改官网 Kuboard
docker镜像 /entrypoint.sh
启动脚本
生成 Dockerfile 文件:
1 | # 编辑 Dockerfile |
启动 Kuboard,并查看进程如下:
五、参考文档
---本文结束感谢您的阅读。微信扫描二维码,关注我的公众号---
本文作者:
Peng Yang
本文链接: https://www.yp14.cn/2022/10/30/ETCD存储满了如何处理/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://www.yp14.cn/2022/10/30/ETCD存储满了如何处理/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!