K8S容器的一则故障记录

一、故障现象

    XXX反馈说某某业务服务异常,无法启动,需要进行协助排查。经常会接到这样一个需求,一开始无法清楚知道具体什么问题,需要跟一线运维人员详细做沟通,了解故障问题的细节。

    根据一线运维人员的反馈,是有一套5节点单master的k8s集群,其中一个node异常重启后,导致上面一个关键mysql服务pod(有持久化存储)无法启动,从而影响到整体业务。一线检查集群反馈服务状态都正常。

二、分析过程

     1、单pod问题?

       从当前情况看,表面现象是说mysql的pod无法启动,也没法切换。但是不是只有这一个问题呢?一开始怀疑是不是mysql做了标签绑定,只能在该node运行,检查一番并没有。

     2、单node问题?

      既然不是单单mysql容器问题,那会不会是这个故障node的问题?检查node各个服务状态和日志,看起来也没什么异常。既然日志没异常,手动做些测试看看。

       1)调度一个非持久化的pod到该节点----发现也无法调度到该节点上,表明node层确实有些问题

       2)在故障node手动创建个docker,可以运行---证明docker容器本身没问题

      3、集群问题

      单node无法调度上去,可能是node本身问题,但node相关日志检查又都无异常。怀疑是上一层集群侧有问题。先测试验证下,从其他节点调度容器或者新建容器,发现都无生产。证明了还是集群侧有问题。

    开始着重排查集群的问题,对集群各个组件进行逐一排查。PS:再温习下k8s各个组件作用

kube-apiserver : 提供了资源的增、删、改、查等操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

kube-scheduler :负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

kube-controller-manager:负责维护集群的状态,资源对象的自动化控制中心,比如故障检测、自动扩展、滚动更新、服务帐户和令牌控制器等;

etcd :k8s的所有资源对象的数据都保存在etcd中;

 1)从前面现象看,调度出了问题,和schedule有关?检查一番schedule没发现啥。

 2)  其他几个组件服务也要检查看看,第一个看到etcd的日志有很多reject connection的错误,有些可疑,开始从这个方向排查,ntp时间、证书、配置等等一一检查,发现也不是这个问题导致。

 3)检查apiserver,日志中有个metrics资源报错。

memcache.go:couldn't get resource list for metrics/vlalphal: the server could not find the requested resource。

 4)检查controller,日志中看发现服务一直在重启中,且也有metric相关报错。

controllermanager.go:174] error starting controllers: failed to discover resources: unable to retrieve 
the complete list of server APIs: metrics/v1alpha1: the server could not find the requested resource

5)都指向了metric,那就检查这个pod的日志,发现有连不上其中一个节点kubelet的错误。

kubectl get pod -n kube-system -owide
kubectl logs **metric** -n kube-system

6)登到这个节点检查kubelet服务,确实服务报错没起起来,排查一通。发现这个节点上也有controller、api、schedule服务启动,等等,不是说单master架构么???怎么这里也有组件服务,后来问一线运维,这个原来是之前部署时留的坑,服务自启动没关闭,导致主机重启后服务自己启动起来,手动把这些服务关闭掉,再重启kubelet,咋还是不行?再来各种检查,发现kubelet的配置文件没有,一线运维之前做了文件备份,但原配置文件居然不在,不知道是不是用的MV命令而不是CP命令......;重新cp了下,再来重启kubelet,kubelet好了。

7)既然kubelet好了,再去看看metric容器,之前连不上的错误没了,但是还是有一堆报错。索性重启下这个pod,然后等了几分钟,集群恢复了,应用啥啥都好使了,game over!

三、经验总结

    在处理k8s类似集群问题故障时,确实需要关注的点会有很多,有的是自上而下的检查,有的会是自下而上的检查。自上而下的方式,有时可能会很快发现组件问题直接解决了底层故障现象,但检查过程中,多个组件多个日志,稍不注意可能就错过了关键信息;并且容易带着不明确的意识(不确认怀疑哪个服务有问题,检查的可能不是很仔细)来检查各类服务。自下而上的方式,有一种拨开云雾见日出的感觉,一层一层来排除确认,最终定位到直接原因,对整个故障原因会有比较直接的因果关系。但这种方式通常处理时间可能会拖的比较长。所以处理类似故障,可以根据情况来选择哪种方式,但建议最优的方式,是可以先仔细(仔细、仔细,重要的事情说三遍)的自上而下的方式检查一遍,如果确实找不到问题所在,再来自下而上再走一遍。

    显然这次故障问题还是前人的一系列骚操作留下来的坑,故障原因分析下来比较简单。不过整个过程处理下来还是有所收获的,经验值又增加了一点,记录一下,日后可以参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

听GPT 讲Rust源代码--src/tools(36)

File: rust/src/tools/clippy/clippy_lints/src/loops/empty_loop.rs 在Rust源代码中,empty_loop.rs文件位于src/tools/clippy/clippy_lints/src/loops/目录下,它的作用是实现并提供一个名为EMPTY_LOOP的Lint规则。Clippy是一个Rust的静态分析工具&#…

个人财务管理软件Money Pro mac功能特点

Money Pro mac是一款专为Mac用户设计的个人财务管理软件,具有全面的账户管理、智能的预算规划、强大的投资分析、丰富的报表和图表、安全的数据保护以及易于使用的界面设计等特点。 Money Pro mac功能和特点 全面的账户管理:支持多种账户类型&#xff0…

Spring Boot 基于Redisson实现注解式分布式锁

依赖版本 JDK 17 Spring Boot 3.2.0 Redisson 3.25.0 源码地址&#xff1a;Gitee 导入依赖 <properties><redisson.version>3.25.0</redisson.version> </properties><dependencies><dependency><groupId>org.projectlombok</…

CLion中使用C/C++ Single File Execution插件编译和运行单个文件

在开发C/C程序时&#xff0c;尽管项目通常以组织良好的结构进行管理&#xff0c;但有时我们可能只需要快速测试或运行单个C或C源文件。对于这种情况&#xff0c;JetBrains CLion IDE提供了一个便捷的解决方案——通过安装名为“C/C Single File Execution”的插件来实现对单个源…

【OpenCV】OpenCV 4.9.0 正式发布

​ 开源计算机视觉库 OpenCV 4.9.0 已于2023年12月29日正式发布。 此次发布有DNN模块对ONNX Attention、Einsum等层的支持、新的fastGEMM实现、transformers的实验性支持等诸多亮点。 OpenCV 4.9.0 更新内容&#xff1a; &#xff08;来自OpenCV中国团队以及中国社区的贡献…

antv/x6_2.0学习使用(二、画布)

画布 一. 创建容器 在页面中创建一个 div 标签&#xff0c;用来容纳画布 <div id"container"></div>画布常用配置信息 const graph new Graph({container: graphRef.value, // 画布容器width: 800, // 画布宽度&#xff0c;默认使用容器宽度height:…

2017年喜茶数字营销变化

1. 什么是数字营销&#xff1f;数字化时代&#xff0c;消费者行为模式发生了哪些变化&#xff1f; 数字营销是指使用数字渠道和平台&#xff0c;通过在线手段推广产品或服务&#xff0c;与目标受众进行互动和沟通的一种营销方式。它涵盖了多种在线渠道&#xff0c;包括社交媒…

华为云云耀云服务器L实例评测|Python Selenium加Chrome Driver构建UI自动化测试实践

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;AWS/阿里云资深使用…

HackTheBox - Medium - Linux - Bagel

Bagel 今天我开始了《Red Team Development and Operations A Practical Guide》的学习&#xff0c;保持学习&#xff0c;后面差不多到时机后就学CRTOⅡ Bagel 是一款中等难度的 Linux 机器&#xff0c;其特点是电子商店容易受到路径遍历攻击&#xff0c;通过该攻击可以获取应…

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1&#xff1a;在windows中检查相机状态 win10系统中&#xff0c;在左下的搜索栏&#xff0c;搜索“相机”&#xff0c;点击进入即可打开相机&#xff0c;并正常显示图像。 注意&#xff1a;如果相机连接到了虚拟机&#xff0c;则不能显示正常。 步骤2&#xff1a;在ubuntu…

STM32——通用计时器

通用计时器框图 1.时钟源 1&#xff09;内部时钟(CK_INT) 2&#xff09;外部时钟模式 1&#xff1a;外部输入引脚(TIx)&#xff0c;x1&#xff0c;2&#xff08;即只能来自于通道 1 或者通道 2&#xff09; 3&#xff09;外部时钟模式 2&#xff1a;外部触发输入(ETR) 4&#…

ARCGIS PRO SDK 访问Geometry对象

一、Geometry常用对象 二、主要类 1、ReadOnlyPartCollection&#xff1a;Polyline 和 Polygon 使用的 ReadOnlySegmentCollection 部件的只读集合&#xff0c;属性成员&#xff1a;​ 名字描述Count获取 ICollection 中包含的元素数。TIEM获取位于指定索引处的元素。Spatial…

mac中excel条件格式找到每一列的最大值并标红

假设现在excel有A1:R24组数据&#xff0c;最终效果如下 先选择要处理数据的第一列&#xff0c;然后点击【条件格式】-【新建规则】 style选择【classic】以及【Use a formula to determine which cells to format】&#xff0c;输入规则【C3MAX(C$3:C$24)】 注意这里C$3前面没…

Rust开发⼲货集(1)--迭代器与消费器

本内容是对 Rust开发干货集[1] 的实践与扩展. iter() 不转移所有权 先简单解释下什么叫"转移所有权": 在 Rust 中&#xff0c;"转移所有权"&#xff08;Ownership Transfer&#xff09;是一种核心概念&#xff0c;它涉及变量和数据的所有权从一个实体转移…

3D视觉-结构光测量-线结构光测量

概述 线结构光测量中&#xff0c;由激光器射出的激光光束透过柱面透镜扩束&#xff0c;再经过准直&#xff0c;产生一束片状光。这片光束像刀刃一样横切在待测物体表面&#xff0c;因此线结构光法又被成为光切法。线结构光测量常采用二维面阵 CCD 作为接受器件&#xff0c;因此…

QT上位机开发(乘法计算小软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面一篇文章&#xff0c;我们学习了怎么创建qt的第一个工程&#xff0c;怎么用designer给qt修改界面。虽然我们到目前为止&#xff0c;还没有编写…

C#使用switch语句更改窗体颜色

目录 一、示例 二、生成 用switch多路选择语句及窗体的BackColor属性更改窗体的BackColor属性。该属性用于获取或设置控件的背景颜色。 可以使用Color结构的静态属性获取Color对象&#xff0c;如Color.Red&#xff1b;也可以使用Color结构的静态方法Color.FromArgb()&#xf…

Linux权限的基本理解

一:&#x1f6a9;Linux中的用户 1.1&#x1f966;用户的分类 &#x1f31f;在Linux中用户可以被分为两种用户: 超级用户(root):可以在Linux系统中做各种事情而不被约束普通用户:只能做有限的事情被权限约束 在实际操作时超级用户的命令提示符为#,普通用户的命令提示符为$,可…

python观察图像的直流分量——冈萨雷斯数字图像处理

原理 在数字图像处理中&#xff0c;图像的直流分量&#xff08;DC分量&#xff09;是指图像中的平均亮度水平。这个概念源自于傅里叶变换&#xff0c;其中信号可以分解为多个频率成分。在这个上下文中&#xff0c;直流分量对应于频率为零的成分&#xff0c;即信号的平均值。 在…

CSS一个纯样式花里胡哨的动态渐变背景块

使用SASS或CSS纯样式花里胡哨的动态渐变背景块 鼠标放在小方块上会放大并挤压周围方块&#xff0c;背景颜色会动态改变。 效果如下 HTML结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vie…