栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

etcd数据失去一致性,导致k8s重复获取pod状态时数据不一致

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

etcd数据失去一致性,导致k8s重复获取pod状态时数据不一致

问题:重复执行 kubectl get pods 执行时获取到的pod节点状态在变化
怀疑:etcd中有节点数据不正确

1、部署 etcd可视化服务查看数据

etcdkeeper下载
上传只etcd节点,解压后,赋予执行权限,启动程序
./etcdkeeper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/peer.crt -key /etc/kubernetes/pki/etcd/peer.key -p 8011

登录访问:http://10.10.10.13:8011/etcdkeeper/

2、查看有问题的pod存储在etcd中的数据

可以看到在 10.10.10.13 节点上 etcd中的数据和10.10.10.11 节点上是有差异的。
集群模式,还存在10.10.10.12节点,其数据与10.10.10.11 一致,此处未展示

3、通过容器状态判断哪个节点etcd数据不正确


对应容器启动正常,说明pod也是正常的,所以是10.10.10.13 节点的数据存在问题。

4、处理问题节点的etcd服务恢复数据

通过重启问题节点的数据,让其在重启时去重新同步其他正确节点的数据

停止10.10.10.13 节点的etcd服务
systemctl stop etcd
从集群中删除该节点
etcdctl member list
etcdctl member remove c6eaa306941ff399

再将该节点加入集群
etcdctl member add master3 --peer-urls=“https://10.10.10.13:2380”

修改10.10.10.13 启动文件配置,删除该节点数据(再次启动时从其他节点同步正确的数据过来)
sed -i “s#initial-cluster-state: ‘new’#initial-cluster-state: ‘existing’” /etc/etcd/etcd.config.yml
cd /var/lib/etcd && tar -zcvf 20220106back.tar.gz member/ wal/
rm -rf member/ wal/

再次启动该节点etcd
systemctl start etcd

查看etcd状态
etcdctl member list

5、再次确认节点数据

数据已经恢复正常。

6、问题原因

已有大神进行了详细的分析。
问题详细原因及原理:https://zhuanlan.zhihu.com/p/138424613

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/705395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号