【k8s实战】kubernetes错误排查之etcd篇

本文介绍了在k8s集群中遇到etcd问题的排查与解决过程。当前端web管理页面出现错误,无法进行增删查操作时,通过分析发现是master节点通信问题和etcd配置错误。解决步骤包括:修复网络配置,重新设置静态IP,恢复ssh登录,重启docker服务,以及处理etcd配置文件损坏的问题。

学习目标

请添加图片描述

提示:无论是实验环境,还是生产,k8s集群环境不一样,所以思维逻辑是一样但命令需要适时地调整

通过本节的学习,您将获得处理k8s集群问题的通用方法,针对etcd方面问题具体,如何快速排查处理。

知识充电:什么是etcd ?

它是一个简单的数据库,k8s默认使用它存储集群的配置信息。

为什么不选择mysql等其他更好的数据库服务?

因为etcd有四大特点:

简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
安全:支持SSL证书验证
快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
可靠:采用raft算法,实现分布式系统数据的可用性和一致性


内容

背景:其他部门反馈,k8s集群的前端web管理页面无法对k8s集群进行增删查的操作,并会有报错提示,显示请求数过多。

一、k8s集群问题处理流程:

1.从已知信息获取更多有助解决问题的信息
根据报错提示信息估计,是计算资源不足以支撑处理请求的能力;反馈,出故障前后,有没有执行过什么操作,创建pod及在集群安装服务等等。

2.登录集群节点命令获取更多有助解决问题的信息

  • 查看集群master与worker节点是否可以通信

Kubectl get no

  • 执行命令不返回查询结果,卡主,最后会报错。由此判定集群master无法联系到worker节点
  • ssh登录其他master节点,用同样命令查看,发现,有一个master节点使用无法ssh登录到。

二、问题描述:

根据其他人员反馈及登录节点查看,定义问题:

1.无法ssh登录到集群的某个master节点

2.可以登录到的master节点执行命令无法获取node信息


解决过程

提示:一个问题的解决,可能会导致另一个问题产生,所以需要全局考虑,避免将问题扩大;或者,在解决的过程,会发现新问题。

问题1:查看网卡配置文件,发现配置信息不正确;但是没有人员对其进行修改过,判断是服务器重启导致网卡配置文件丢失,导致原来ip消失。

(1)配置静态ip地址

vim /etc/sysconfig/network-scripts/ifcfg-eth0

(2)重启有问题的网卡配置

ifdown ifcfg-eth0;ifup ifcfg-eth0

(3) 登录验证

发现master1无法登录,报错,被拒绝
换其他master登录,可以登录但是需要输入密码;造成这个的原因是,故障主机的ssh密钥文件也丢失;而本机是以密钥方式登录,所以会拒绝,其他master节点没有配置密钥,所以需要输入密码,并且会成功登录。


问题2:查看docker,发现有的节点docker服务死掉;docker服务正常的节点,etcd处于退出状态。

(1)docker服务死掉

尝试重启docker服务;但是,报错,查看日志分析,解决方案,重启这台服务器;之后docker服务恢复

(2)etcd异常
登录多个etcd节点查看配置信息,综合分析后得出,etcd配置文件损坏。处理流程:从集群移除etcd,之后再次创建使其生成新的配置文件。

  • 使用shell脚本先备份原etcd数据
  • 命令解散etcd集群
  • 创建新的etcd集群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值