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

Etcd 故障排查

时间:2024-07-09 14:44:41浏览次数:18  
标签:key Etcd 故障 -- CA 排查 CERT 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/david-cloud/p/18291803

相关文章

  • Spring Boot 微服务故障排除 – 真实案例研究
    之前碰到的一个真实案例,记录一下先来看看左移监控:优化云应用程序的途径,以及如何使用可观察性工具对SpringBoot代码问题进行左移故障排除,从而避免生产问题、不必要的成本并提高产品质量。通俗解释传统方法vs左移监控:传统方法:通常在开发接近尾声时,才开始进行严格的测......
  • Etcd 高可用故障演练
    目的本次演练旨在测试Kubernetes的etcd高可用性,检验是否能够在其中一个etcd节点发生故障的情况下,其他etcd节点能够接管其工作,确保集群仍能正常运行。集群架构演练场景在一个三节点的Kubernetes集群中,我们将模拟其中一个etcd节点的故障,观察剩余的etcd节点是否能......
  • Etcd 概述及运维实践
     Etcd概述什么是Etcd?Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,Etcd基于Go语言实现。名字由来,它源于两个方面,unix的“/etc”文件夹和分布式系统(“D”istributesyste......
  • Linux环境中应急响应与排查溯源思路总结
    0前言在应急响应和溯源时,经常会遇见Linux系统环境,然后小编经常只记得思路忘记部分命令,下面是小编对Linux环境下应急响应和排查的思路总结。本文来源无问社区(wwlib.cn)更多详细内容可前往观看http://www.wwlib.cn/index.php/artread/artid/2729.html1目录文件分析1.1系统用......
  • TNS问题排查 The listener supports no services
     检查tns的日志信息查看具体报错详情/u01/app/oracle/diag/tnslsnr/<hostname>/listener/alert/log.xml 修改litener.ora #listener.oraNetworkConfigurationFile:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora#GeneratedbyOracleco......
  • 【汽车故障诊断4】一文了解故障诊断码DTC验证程度、快照和扩展数据
    在上篇【汽车故障诊断3】一文了解诊断故障码DTC状态位介绍DTC状态位,本篇文章将继续介绍DTC的其他信息:DTC严重程度,DTC快照和DTC扩展数据。1什么是DTC严重程度  DTC严重程度占用1个字节数据,包含两部分信息,DTC严重程度信息(3位)和DTC类别信息(5位),如下所示:source:ISO15031-6 ......
  • 【汽车故障诊断5】ECU如何进行故障诊断
    【汽车故障诊断1】汽车上都有哪些类型的故障?【汽车故障诊断2】一文了解诊断故障码DTC【汽车故障诊断3】一文了解诊断故障码DTC状态位【汽车故障诊断4】一文了解故障诊断码DTC验证程度、快照和扩展数据在本系列前4篇文章中介绍了汽车ECU有哪些故障以及如何用DTC来表示,其逻辑......
  • SCI一区级 | Matlab实现BO-Transformer-GRU多特征分类预测/故障诊断
    SCI一区级|Matlab实现BO-Transformer-GRU多特征分类预测/故障诊断目录SCI一区级|Matlab实现BO-Transformer-GRU多特征分类预测/故障诊断效果一览基本介绍程序设计参考资料效果一览基本介绍1.【SCI一区级】Matlab实现BO-Transformer-GRU特征分类预测......
  • JCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故
    JJCR一区|Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断目录JJCR一区|Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNN-MATTGASF-CNNGADF-CNN基本介绍程序设计参考......
  • 【汽车故障诊断3】一文了解诊断故障码DTC状态位
    在上篇 【汽车故障诊断2】一文了解诊断故障码DTC介绍DTC的基本概念,本篇文章将继续介绍DTC的其他信息:DTC状态位。1什么是DTC状态位  DTC状态位,即StatusOfDTC,是用来指示DTC所对应的故障是否发生,是否被确认等状态。DTC状态位包含1个字节数据长度,每一位都有具体的定义,如下......