当前位置: 首页 > news >正文

K8S集群etcd 某个节点数据不一致如何修复 —— 筑梦之路

背景说明

  二进制方式安装的k8s集群,etcd集群有3个节点,某天有一台机器hang住了,无法远程ssh登陆,于是被管理员直接重启了,重启后发现k8s集群删除一个deployment应用,多次刷新一会有,一会没有,于是在3个节点上执行etcd命令去查询该数据,发现被重启的节点上仍存在删除的该应用的数据,于是判断etcd集群的该节点存在脏数据,和其他节点数据不同步。

排障过程

发现问题

# 删除应用
kubectl  -n kube-system delete deploy metrics-server# 检查应用状态
kubectl  -n kube-system get pod | grep metrics-server此处多次查询发现一会存在,一会不存在# 检查etcd节点状态etcdctl  member  listetcdctl --endpoints=https://192.168.100.100:2379,https://192.168.100.101:2379,https://192.168.100.102:2379 --write-out=table endpoint status# 在每个节点上执行查询,找出问题节点ETCDCTL_API=3 etcdctl  get /registry/deployments/kube-system/metrics-server

  从上面发现etcd集群节点数据不一致的问题 ,虽然停掉该问题节点,集群仍然可以正常使用,但这也只能是临时的办法,2个节点,如果不能选举出谁是leader,会影响集群的健壮性和服务的可靠性,因此,我们需要对该问题节点的etcd服务进行修复。

如何修复

1. 备份数据

在做操作前需要做好正常数据的备份,以免修复不成功无法还原,这点是很重要的,特别是生产环境。

备份方式:

a. 直接打包数据目录

主要打包的目录有data  wal 两个目录

b. etcd 快照方式备份

之前也写过,这里不再赘述。

2. 如何修复

1) 停掉问题节点的etcd服务

systemctl stop  etcd

2) 清空数据目录

主要清空data wal 目录

3)获取问题节点etcd的id

etcdctl member list

4) 从集群中移除问题节点

etcdctl  member remove  <问题节点ID>

5)重新将问题节点加入集群

etcdctl [证书] --endpoints="https://192.168.100.100:2379,https://192.168.100.101:2379,https://192.168.100.102:2379" member add etcd-192.168.100.102 --peer-urls="https://192.168.100.102:2380"

 6)修改etcd配置文件:将initial-cluster-state的值new改成existing

sed -i 's/new/existing/g' /etc/systemd/system/etcd.servicesystemctl daemon-reload

 7) 启动服务

systemctl  start etcdsystemctl  status etcd

 8) 检查etcd集群状态

http://www.lryc.cn/news/228348.html

相关文章:

  • selenium/webdriver运行原理与机制
  • 论文阅读[121]使用CAE+XGBoost从荧光光谱中检测和识别饮用水中的有机污染物
  • Juniper SRX PPPoE配置
  • 虚拟仪器软件结构VISA
  • /etc/init.d/functions: Syntax error: “(“ unexpected (expecting “done“)
  • Google/微端/Amazon/IBM四个厂家在分布式里面提供的服务总结
  • 计网:第一章 概述
  • RT-DETR算法优化改进:新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022
  • 基于遗传算法改进的GRNN多输入多输出回归预测,基于多目标遗传算法+GRNN的帕累托前沿求解,基于遗传工具箱调用GRNN模型的多目标求解
  • vue2按需导入Element(vite打包)
  • 力扣117双周赛
  • SPI简介及FPGA通用MOSI模块实现
  • K8S篇之K8S详解
  • 进博会再现上亿大单 EZZ携手HIC海橙嗨选签署2024年度合作备忘录
  • 深度学习基于python+TensorFlow+Django的花朵识别系统
  • Azure 机器学习 - 机器学习中的企业安全和治理
  • Unity - 各向异性 - 丝绸材质
  • MySQL中UUID主键的优化
  • Python实现WOA智能鲸鱼优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战
  • Rust语言代码示例
  • 【SpringBoot3+Vue3】一【基础篇】
  • 麒麟信安登录央视,深度展现为中国信息安全铸“魂”之路
  • Flutter的专属Skia引擎解析+用法原理
  • python poetry的教程
  • jq里的ajax超详细参数讲解
  • 郑州大学2020级信息安全专业——保研小结
  • 【系统架构设计】架构核心知识: 3.6 负载均衡和Session
  • python pip安装特定包,网络慢的问题
  • CMT2300A超低功耗127-1020MHz Sub-1GHz全频段SUB-1G 射频收发芯片
  • 设计模式之工厂模式 ( Factory Pattern )(1)