etcd磁盘满解决方案

发布时间 2023-12-10 21:55:07作者: 技术颜良

​Etcd 磁盘空间爆满解决方案

k8s技术圈 2023-11-21 20:04 发表于四川 2人听过
 

以下文章来源于SRE运维进阶之路 ,作者clay

SRE运维进阶之路.

专注于 SRE 运维、云原生、稳定性、高可用性、可观测性、DevOps 等技术

Etcd 磁盘空间爆满解决方案

etcd默认的空间配额限制为2G,超出空间配额限制就会影响服务,所以需要定期清理

设置环境变量

ETCD_CA_CERT="/etc/kubernetes/pki/etcd/ca.crt"ETCD_CERT="/etc/kubernetes/pki/etcd/server.crt"ETCD_KEY="/etc/kubernetes/pki/etcd/server.key"HOST_1=https://xxx.xxx.xxx.xxx:2379

 

查看集群状态

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" --write-out=table endpoint status

查看ETCD集群报警情况

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" alarm list

输出为:

meberID:XXXXXXXXXXXXXXX alarm:NOSPACE

此处 alarm 提示 NOSPACE,需要升级 ETCD 集群的空间(默认为2G的磁盘使用空间),或者压缩老数据,升级空间后,需要使用 etcd命令,取消此报警信息,否则集群依旧无法使用

解决方案一:增加etcd的容量

修改 etcd.yaml 文件,由2G-->8G,增加以下三个参数

- --auto-compaction-mode=revision- --auto-compaction-retention=1000- --quota-backend-bytes=8589934592

auto-compaction-mode=revision 按版本号压缩

auto-compaction-retention=1000 保留近1000个revision,每5分钟自动压缩 ”latest revision” - 1000

quota-backend-bytes 设置etcd最大容量为8G

修改后重启

解决方案二:压缩老数据清理

压缩老数据

  • 获取当前etcd数据的修订版本(revision)

rev=$(ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \ --endpoints="${HOST_1}" endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')echo $rev
  • 整合压缩旧版本数据

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" compact $rev
  • 执行碎片整理

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" defrag

解除告警

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" alarm disarm

验证可以添加新数据

ETCDCTL_API=3 etcdctl --cacert="${ETCD_CA_CERT}" --cert="${ETCD_CERT}" --key="${ETCD_KEY}" \  --endpoints="${HOST_1}" put newkeytestfornospace 123
k8s技术圈
专注容器、专注 kubernetes 技术......
374篇原创内容
阅读原文
阅读 2337
k8s技术圈
 
精选留言
写留言
  •  
    学习了
     
     
已无更多数据