ETCD报错:Error etcdserver mvcc database space exceeded
ETCD配置问题处理与验证报错信息:容器创建的时候,报错:Error etcdserver mvcc database space exceeded问题原因:k8s创建pod的时候,会向etcd中写数据,etcd官方默认的空间配额是2G,最大支持8G,以下是官方下载包内的说明,The default storage size limit is 2GB, configurable with `--q
·
ETCD配置问题处理与验证
-
报错信息:
容器创建的时候,报错:Error etcdserver mvcc database space exceeded
-
问题原因:
k8s创建pod的时候,会向etcd中写数据,etcd官方默认的空间配额是2G,最大支持8G,以下是官方下载包内的说明,
The default storage size limit is 2GB, configurable with `--quota-backend-bytes` flag. 8GB is a suggested maximum size for normal environments and etcd warns at startup if the configured value exceeds it.
所有的运维管理都在操作ETCD的存储空间;存储空间的配额用于控制ETCD数据空间的大小,如果ETCD节点磁盘空间不足了,配额会触发告警,然后ETCD系统将进入操作受限的维护模式。
解决方案
- 压缩
#使用API3
$ export ETCDCTL_API=3
# 获取当前版本
$ rev=$(etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
# 压缩掉所有旧版本
etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
# 整理多余的空间
etcdctl --endpoints=http://127.0.0.1:2379 defrag
# 取消告警信息
etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
- 修改启动文件
...
--auto-compaction-retention=1 ## 表示每隔一小时自动压缩一次
--quota-backend-bytes=8388608000 ## 磁盘空间调整为8G,官方建议最大8G
修改完成后,取消告警信息
# 取消告警信息
etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
然后重启etcd即可
更多推荐
已为社区贡献4条内容
所有评论(0)