首页 > 其他分享 >Etcd 故障排查

Etcd 故障排查

时间:2023-06-23 14:11:29浏览次数:43  
标签:key Etcd 故障 -- CA 排查 CERT etcd ETCD

Etcd 故障排查

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

⚠️ auto compact只会压缩key space,不会释放物理存储空间。所以需要定期的执行defrag

 

标签:key,Etcd,故障,--,CA,排查,CERT,etcd,ETCD
From: https://www.cnblogs.com/clay-wangzhi/p/17499097.html

相关文章

  • Etcd 监控
    Etcd监控重点监控指标指标分类健康状态USE方法(系统)使用率饱和度错误RED方法(应用)请求速率错误率延迟指标分类指标释义健康状态实例健康状态etcd是一个分布式系统,由多个成员节点组成。监控etcd成员节点的状态可以帮助你了解集群中节......
  • 【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection ref
    问题描述在PHP应用中,连接Redis的方法报错  RedisException(code:0):Connectionrefusedat/data/Redis/Connectors/PhpRedisConnector.phpproduction.ERROR:Connectionrefused{"exception":"[object](RedisException(code:0):Connectionrefusedat/data/Redis/Con......
  • 【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection ref
    问题描述在PHP应用中,连接Redis的方法报错  RedisException(code:0):Connectionrefusedat/data/Redis/Connectors/PhpRedisConnector.phpproduction.ERROR:Connectionrefused{"exception":"[object](RedisException(code:0):Connectionrefusedat/data/Redis/......
  • 清除ILOM中的故障码,消除黄灯告警
     X86架构的机器,当出现硬件故障时,一般会在ILOM中会记录下该故障的详细信息,简称为:故障码。当进行硬件更换后,ILOM会自动清除掉该故障码,机器的黄灯告警也会自动消失。但有的时候,总会出现一些莫名其妙的情况,硬件更换后,ILOM中的故障码却无法自动清除,例如下面这个案例。 1、某Exadata......
  • SQL Server故障排除圣经
    微软SQLServer内部技术资料大曝光来自SQLServer开发小组和支持部门的梦之队打造SQLServer故障排除圣经  “本书的内容是其他任何博客、网站和图书都没有的。系统出问题时,它将成为你的救命稻草。”——PinalDave,微软MVP  “此书写得非常好,涵盖了对大量复杂问题进行故障排......
  • 评估 Etcd 性能及可靠性
    评估Etcd性能及可靠性SLI&SLOSLI(ServiceLevelIndicator):服务等级指标,其实就是我们选择哪些指标来衡量我们的稳定性。SLO(ServiceLevelObjective):服务等级目标,指的就是我们设定的稳定性目标,比如“几个9”这样的目标。SLO是SLI要达成的目标,我们需要选择合适的SLI,设定......
  • Etcd 高可用故障演练
    Etcd高可用故障演练目的本次演练旨在测试Kubernetes的etcd高可用性,检验是否能够在其中一个etcd节点发生故障的情况下,其他etcd节点能够接管其工作,确保集群仍能正常运行。集群架构演练场景在一个三节点的Kubernetes集群中,我们将模拟其中一个etcd节点的故障,观察剩......
  • 硬件&芯片安全渗透利器--BTS1002多接口精密触发故障注入仪
    注1:该软硬件产品均为湖南底网安全信息技术有限公司自主研发,已申请1个发明专利,2个实用新型专利,1个软著,转载请注明出处注2:详细内容详见产品技术手册、用户手册,官网下载地址:www.bttmsec.com/h-col-152.html注3:诚招区域独家代理合作伙伴,欢迎洽谈合作,湖南底网安全竭诚为您服务作者:bi......
  • ETCD连接报错:database space exceeded
    ETCD连接报错:databasespaceexceeded一:背景此etcd不是k8s集群中的etcd,是kuboard中使用etcd报错,kuboard稳定运行了一年多,上周还正常访问,今天上班访问kuboard报错,然后顺着排查发现kuboard中使用了etcd(之前一直没注意),查看kuboard日志,发现如下报错信息:二:报错分析:大致意思就是kubo......
  • Etcd 概述
    Etcd概述什么是Etcd?Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于Go语言实现。名字由来,它源于两个方面,unix的“/etc”文件夹和分布式系统(“D”istributesystem)的......