一、现象描述
测试环境,没有开启监控。正常环境,发现etcd磁盘空间不足实惠告警的。
租户在门户发布服务失败,后台查看租户服务的控制器存在,副本数是0.
手动调整副本数失败。
报错etcdserver:mvcc:database space exceeded
Etcd存储空间满
执行命令查看etcd状态:
ETCDCTL_API=3 etcdctl --endpoints="10.0.1.1:1159,10.0.1.2:1159,10.0.1.3:1159" --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_server.crt" --key="/etc/kubernetes/ssl/etcd_server.key" endpoint status --write-out=table
看到数据量为2.1G
etcd数据默认上限为2G,2.1G超出了数据最大量
二、处理过程
1、错误示范 为了尽快恢复,直接执行数据压缩命令(详细命令后面有)
此次操作前没有先消除集群告警,操作完成后数据还有1.7G,切仍然报错没有空间
2、当etcd集群有errors告警时,该警报会将群集置于维护模式,该模式仅接受键读取和删除。需要先通过命令消除集群告警后在进行其他操作
3、消除etcd集群告警
#etcdctl alarm disarm
#如果集群没有出现error告警,则不需要该操作
ETCDCTL_API=3 etcdctl --endpoints="10.0.1.1:1159,10.0.1.2:1159,10.0.1.3:1159" --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_server.crt" --key="/etc/kubernetes/ssl/etcd_server.key" alarm disarm