K8S-etcd服务无法启动问题排查

news/2025/3/20 4:53:58/

一、环境、版本信息说明

k8s:v1.19.16

etcdctl version: 3.5.1

3台etcd(10.xxx.xx.129、10.xxx.xx.130、10.xxx.xx.131)组成的集群。

二、问题根因

129节点的etcd数据与其他两台数据不一致,集群一致性校验出错导致无法加入集群端点中。需先从集群中移除改异常节点,修改/etc/etcd/etcd.conf文件,并重新添加进集群。

三、巡检过程中发现129节点的etcd服务无法启动 

尝试几次启动服务器etcd.service,均无法正常启动,查看服务状态如下:

日志关键提示:stopped remote peer...,stopped TCP streaming connection with remote peer...

此时查看etcd point status,发现10.xxx.xx.129已查询不到:

命令:

etcdctl --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_client.crt" --key="/etc/kubernetes/ssl/etcd_client.key" --endpoints="https://10.xxx.xx.129:1159,https://10.xxx.xx.130:1159,https://10.xxx.xx.131:1159" endpoint status --write-out table  

查看etcd member list,10.xxx.xx.129还能查询到;

命令:

 etcdctl --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_client.crt" --key="/etc/kubernetes/ssl/etcd_client.key" --endpoints="https://10.xxx.xx.129:1159,https://10.xxx.xx.130:1159,https://10.xxx.xx.131:1159" member list --write-out table

 结果:

四、移除异常受损节点etcd_129

命令:

etcdctl --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_client.crt" --key="/etc/kubernetes/ssl/etcd_client.key" --endpoints="https://10.xxx.xx.129:1159,https://10.xxx.xx.130:1159,https://10.xxx.xx.131:1159"  member remove b572c7cf1e338c4d

Member b572c7cf1e338c4d removed from cluster  af90dec9e9ee777

确认移除状态:

 结果:

重新添加etcd_129节点

1)添加etcd_129

命令:

etcdctl --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_client.crt" --key="/etc/kubernetes/ssl/etcd_client.key" --peer-urls=" https://10.xxx.xx.129:2380" --endpoints="https://10.xxx.xx.129:1159,https://10.xxx.xx.130:1159,https://10.xxx.xx.131:1159" member add  etcd15_129

Member 552d3942486a87c6 added to cluster  af90dec9e9ee777

  1. 修改/etc/etcd/etcd.conf配置:

将原来的ETCD_INITIAL_CLUSTER_STATE=”new”调整ETCD_INITIAL_CLUSTER_STATE="existing" ;

命令:

sed -i s#ETCD_INITIAL_CLUSTER_STATE="new"#ETCD_INITIAL_CLUSTER_STATE="existing"#g/etc/etcd/etcd.conf

 结果:

此时查看集群状态,新加入的节点状态为unstarted

  1. 删除新增成员的旧数据目录,更改相关配置。

不删除历史受损节点的etcd就数据目录,该节点的etcd service将无法正常启动。

命令

cp /apps/etcd_data{,_bak} ;rm -rf /apps/etcd_data/etcd/*

六、启动服务 检测集群是否正常

命令

systemctl start etcd.service     # 查看etcd服务状态      

命令

etcdctl --cacert="/etc/kubernetes/ssl/ca.crt" --cert="/etc/kubernetes/ssl/etcd_client.crt" --key="/etc/kubernetes/ssl/etcd_client.key" --endpoints="https://10.xxx.xx.129:1159,https://10.xxx.xx.130:1159,https://10.xxx.xx.131:1159" endpoint status --write-out table         # 查看etcd endpoint status;

 结果:


http://www.ppmy.cn/news/1580506.html

相关文章

RabbitMQ常见问题总结

RabbitMQ 是什么? RabbitMQ 是一个在 AMQP(Advanced Message Queuing Protocol )基础上实现的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。它支持多种客…

browser_use 自动化浏览器agent使用案例

参考: https://github.com/browser-use/browser-use/tree/577e15c963f7e3c499aac312ecb8da6e1f4733fe 浏览器启动后,页面一直空白问题解决: https://github.com/browser-use/browser-use/issues/986 安装: pip install browser…

Bash语言的手动测试

Bash语言的手动测试 引言 在现代软件开发中,测试是确保代码质量的重要环节。随着系统复杂性的提升,自动化测试逐渐成为主流,但手动测试依然在某些场景下发挥着重要作用。本文将深入探讨Bash语言的手动测试,包括其背景、基本概念…

卷积神经网络 - 卷积的互相关

一、卷积核翻转 一句话直击本质 卷积核翻转就是把卷积核(比如[1,2,3])倒过来变成[3,2,1]后再滑动计算,这是严格数学定义的要求,但深度学习中的卷积实际上跳过了这一步。 直观理解步骤分解 场景设定 假设我们要用卷积核检测心…

OpenHarmony 开源鸿蒙北向开发——3.配置SDK

安装、配置完成之后我们就要配置SDK。 我们创建工程后,点击右上角设置 进入设置 进入OpenHarmony SDK,选择编辑 这里配置一下SDK安装位置 点击完成 这里我们API版本勾选第一个即可 确认安装 勾选接受 这里要等一会 安装完成后,点击完成

HTML 新手入门:从零基础到搭建第一个静态页面(一)

开启 HTML 学习之旅 在互联网的广袤世界中,网页是我们与信息交互的主要窗口。而 HTML,作为构建网页的基石,就像是搭建房屋的砖块,是网页开发中不可或缺的基础。无论你是对网页开发充满好奇的小白,还是渴望系统学习前端…

冒泡排序:古老算法中的智慧启示

在计算机科学浩瀚的星空中,排序算法犹如璀璨的星辰,而冒泡排序恰似其中最朴实无华的一颗。这个诞生于计算机发展初期的经典算法,以其简单直观的逻辑原理,成为每个程序员启蒙阶段必经的试炼场。当我们凝视这个看似笨拙的排序方法时…

vscode中修改快捷键

以ctrle为例,在shell终端中ctrla为光标到行首,ctrle为光标到行尾; 快捷键设置会冲突,也时常会因为下载各种vscode插件莫名其妙失效。 在 Visual Studio Code (VS Code) 中,你可以通过修改键盘快捷键设置来将 CtrlE 绑…