Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >当K8S发生故障时,可以从哪几个方面入手排查问题?

当K8S发生故障时,可以从哪几个方面入手排查问题?

作者头像
不背锅运维
发布于 2023-06-25 09:11:04
发布于 2023-06-25 09:11:04
4850
举报
文章被收录于专栏:监控监控

当K8S发生故障时,往往需要迅速而精确地定位问题,并及时采取行动。那么,当遇到K8S故障时,应该从哪几个方面入手排查问题呢?本篇就来聊聊这个话题,让我们一起来探寻关键的排查方向。

第一方面:审视集群状态

K8S的集群状态是排查故障的关键起点。使用kubectl get nodes命令来检查节点状态。如果有节点未能就绪或出现异常状态,可能会对应用程序造成故障。确保基本组件,如etcd、kubelet和kube-proxy等,正常运行。

第二方面:追踪事件日志

深入了解集群中发生的事件是解决K8S故障的重要环节。通过kubectl get events命令查看事件日志。事件日志记录了与集群中重要事件和错误相关的信息。透过事件日志的检查,能够了解K8S组件或应用程序中存在的潜在故障,并准确定位问题。

第三方面:聚焦Pod状态

通过运行kubectl get pods --all-namespaces命令,获取集群中所有Pod的状态。若有Pod未处于运行状态(例如挂起、错误或未就绪等),很可能与容器或应用程序相关的问题有关。借助kubectl describe pod命令,获取特定Pod的详细信息,以便深入排查。

第四方面:检查网络连通性

确保网络连接正常。审查服务、Pod和节点之间的网络通信是否存在问题。运行kubectl get services命令查看服务状态,使用kubectl describe service获取相关服务的详细信息。同时,验证网络策略和防火墙规则的正确配置。

第五方面:审视存储配置

如果你的应用程序使用持久性存储(例如Persistent Volumes和Storage Classes),务必确保存储配置正确。检查存储卷声明、存储类和持久卷的状态。通过kubectl get pv、kubectl get pvc和kubectl get storageclass命令,获取与存储相关的信息。

第六方面:研究容器日志

深入容器的日志能够提供关于应用程序故障的重要线索。使用kubectl logs命令查看特定Pod中容器的日志输出。如果Pod内含多个容器,你可以使用kubectl logs-c来查看特定容器的日志。

最后

以上就是排查K8S故障时的关键方向。当然,具体的排查方法还取决于你的集群配置、应用程序部署方式以及故障的具体现象。根据实际情况,可能需要进一步调查或采取其他排查措施。立足于这些方向,你将更有把握解决K8S故障,并确保应用程序持续稳定运行。

点击链接,畅读精彩文章,从中获取洞见,为自己的技术之旅注入新的动力!

【K8S(专注于深入研究K8S相关的各种技术和知识分享。)】:https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUzMTkyODc4NQ==&scene=1&album_id=2474851867500544003&count=3#wechat_redirect

【Go&Py(涵盖了Go和Python两种流行的编程语言。)】:https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUzMTkyODc4NQ==&scene=1&album_id=2869340550028771330&count=3#wechat_redirect

【Ops(运维领域的讨论和交流。)】:https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzUzMTkyODc4NQ==&scene=1&album_id=2869345486221262853&count=3#wechat_redirect

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AIOps系列 | 开发 K8s GPT 故障诊断工具
前面我们介绍了 《开发 K8s Chat 命令行工具》,实现了通过和 Kubernetes 进行交互的方式进行运维,虽然文章中所描述的功能比较简单,但是可以以此进行扩展,丰富功能。
没有故事的陈师傅
2025/08/15
540
AIOps系列 | 开发 K8s GPT 故障诊断工具
无需复杂命令!嘉为蓝鲸 × 中大k8s智能体凭对话触发实现集群故障高效自愈
官网原文(免费申请演示):【嘉为蓝鲸×中大】首篇实战:对话触发k8s智能体,高效自愈集群故障
嘉为蓝鲸
2025/08/12
500
无需复杂命令!嘉为蓝鲸 × 中大k8s智能体凭对话触发实现集群故障高效自愈
K8S调度:实战完nodeSelector后,再谈应用场景。
nodeSelector是什么鬼?这么说吧,假设有一个K8S集群,其中有多个节点,并且想将一个特定的应用程序只部署在具有特定标签的节点上。这时候就可以在Pod的定义中添加nodeSelector字段,指定一个键值对,例如app: my-app。然后,K8S调度器将查找具有app=my-app标签的节点,并将该Pod调度到其中之一上运行。
不背锅运维
2023/06/21
8610
K8S调度:实战完nodeSelector后,再谈应用场景。
运维工程师有哪些常用的技术网站?
这是一个开发者社区网站,提供了广泛的技术文章、教程和资源,其中也包括一些与运维相关的内容。 -访问地址:https://dzone.com/
不背锅运维
2023/06/25
2K0
k8s故障排查常用方法
在Kubernetes中排查故障是一个常见但有时复杂的任务,因为它涉及到多个层次的组件和服务。以下是常用的方式和方法,可以帮排查Kubernetes中的故障:
希里安
2023/10/30
4370
k8s故障排查常用方法
K8S资源限制实战:优化性能与资源管理
K8S已成为容器编排和管理的事实标准,为开发者和运维人员提供了强大的工具和功能。在K8S集群中,对资源的合理限制和管理是确保应用性能和可靠性的关键因素。本文将介绍如何在K8S集群中使用资源限制来优化应用的性能和实现资源管理。
不背锅运维
2023/06/16
5260
K8S资源限制实战:优化性能与资源管理
运维人的日常之一次K8s磁盘故障的惊魂夜
事件起因 23年3月的某个该死的一天,而且是该死的凌晨两点,值班人员忽然来电话,公司主力产品的某大型在线对战游戏部分玩家在拍卖行交易时,界面一直停在“提交中”,页面卡死,整个流程卡住了。 ”好!知道了~“,迷迷糊糊中拿起手机,眼皮还没完全睁开,就看到满屏的告警,Prometheus那边已经炸了——trade-service的错误率飙到了85%以上。没办法拿人钱财与人消灾,操练起来吧. 废话少说直接来干货!先声明这个K8s集群的版本是v1.24.8 排查过程 先从集群角度看看都什么情况! • kubectl get nodes -o wide 显示 worker-node-7 状态为 DiskPressure 该节点运行着交易服务的核心事务处理的Pod。 • 执行驱逐检查:kubectl describe node worker-node-7 | grep -i evicted # 发现12个Pod因磁盘压力被驱逐 • Elastic Stack 日志分析发现连续错误: [FATAL] Transaction commit failed: Input/output error 再从问题节点上看看什么情况 • SSH登录worker-node-7随手就是一个技能:df -hT /var/lib/kubelet # 显示使用率100% • 嚯!~接下来必须看看是哪个或者哪些大文件导致的?:ncdu -x /var/lib/docker/overlay2 # 发现某容器日志文件占用52GB • 那我删?别忙,别动!老运维的直觉,感觉有埋伏.那我必须再一个技能 sudo smartctl -a /dev/nvme0n1 | grep -e 'Media_Wearout_Indicator' -e 'Reallocated_Sector_Ct' Reallocated_Sector_Ct 0x0033 086 086 000 Pre-fail Always FAILING_NOW 142 • 我勒个去.迷糊不?子母雷呀!磁盘有142个坏道.
IT运维技术圈
2025/07/02
1750
运维人的日常之一次K8s磁盘故障的惊魂夜
docker、k8s 面试总结
Docker 是基于容器技术实现的,容器技术最开始是基于 Linux Container(简称 LXC)技术实现的,通过内核提供的 Namespace 和 Cgroup 机制,实现了对应用程序的隔离以及物理资源的分配。
lincoln
2022/03/02
1.7K0
K8s组件和架构
Master节点是Kubernetes集群的控制节点,每个Kubernetes集群里至少有一个Master节点,它负责整个集群的决策(如调度),发现和响应集群的事件。一个集群通常运行多个Master控制节点,提供容错性和高可用性。Master节点可以运行在集群中的任意一个节点上,但是最好将Master节点作为一个独立节点,不在该节点上创建容器,因为如果该节点出现问题导致宕机或不可用,整个集群的管理就会失效。
谢公子
2023/02/27
1.2K0
K8s组件和架构
运维想要不背锅,这7点了解一下!
别什么都乱“干”,分配的活就用心干好,没分配的活可别抢着干,可能会干得好没奖励,但干得不好估计就有背上锅的风险。积极主动性固然重要,但一定要避免越权行动。
不背锅运维
2023/06/25
2290
K8S 部署电商项目
域名分配及动态更新问题 从上面的方法,采用 Nginx-Pod 似乎已经解决了问题,但是其实这里面有一个很大缺陷:当每次有新服务加入又该如何修改 Nginx 配置呢?我们知道使用 Nginx 可以通过虚拟主机域名进行区分不同的服务,而每个服务通过 upstream 进行定义不同的负载均衡池,再加上 location 进行负载均衡的反向代理,在日常使用中只需要修改 nginx.conf 即可实现,那在 K8S 中又该如何实现这种方式的调度呢?假设后端的服务初始服务只有 ecshop,后面增加了 bbs 和 member 服务,那么又该如何将这 2 个服务加入到 Nginx-Pod 进行调度呢?总不能每次手动改或者 Rolling Update 前端 Nginx Pod 吧!此时Ingress 出现了,如果不算上面的 Nginx,Ingress 包含两大组件:Ingress Controller 和 Ingress。
全栈程序员站长
2022/09/02
1.1K0
你没见过的 K8S 大总结
kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。
派大星在吗
2021/12/17
1.4K0
rancher-1:使用rancher-2.5.5部署单节点kubernetes集群
rancher2.5.x发布,除了新的feature外,更加简洁,体验/研究/熟悉一下,方便后续的落地使用。感觉:太爽了
千里行走
2021/03/03
4K1
rancher-1:使用rancher-2.5.5部署单节点kubernetes集群
easyBio — 简化生信上游处理的工具包
easyBio是一个由上海交通大学 shilei 维护的基于Python的生物信息学软件项目,提供了多个小工具,旨在简便生物信息学数据的分析和处理。
生信菜鸟团
2024/03/18
5900
easyBio — 简化生信上游处理的工具包
每周云安全资讯-2022年第26周
云原生安全 1 CVE-2022-23222漏洞及利用分析 本文带来了eBPF验证器中的漏洞分析以及利用 https://tttang.com/archive/1628/ 2 Oh My API,滥用TYK云API管理隐藏恶意C2流量 本文介绍滥用 TYK API 网关提供的 API 路由转发能力隐藏恶意 C2 流量技术 https://shells.systems/oh-my-api-abusing-tyk-cloud-api-management-service-to-hide-your-malici
云鼎实验室
2022/06/29
3800
每周云安全资讯-2022年第26周
统计学03: 泊松分布和指数分布
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5MDg4MDU4MQ==&action=getalbum&album_id=290255439476
生信探索
2023/05/06
2820
K8S线上集群排查,实测排查Node节点NotReady异常状态
大家好,本篇是个人的第 2 篇文章。是关于在之前项目中,k8s 线上集群中 Node 节点状态变成 NotReady 状态,导致整个 Node 节点中容器停止服务后的问题排查。
杨小鑫
2021/02/22
5.9K0
部署应用到 k8s 入门教程
本篇文章适合k8s入门参考,使用 yaml 文件和 kubectl 命令完成应用部署。本文的脚本只演示了最基础的配置。
谢正伟
2021/05/08
7.1K0
部署应用到 k8s 入门教程
k8s故障检测与自愈(一)
DNS故障:6个DNS Pod中的2个出现无法解析外部DNS名称的情况。后果是大量线上业务因域名解析。
没有故事的陈师傅
2021/04/26
3.5K0
k8s故障检测与自愈(一)
深入理解HTTP的基础知识:请求-响应过程解析
首先,我们从网络协议的最顶层开始讲解,即应用层。在网络通信中,应用层是最接近用户的一层,它负责为特定的网络应用提供服务和功能。应用层协议定义了数据交换的规则和格式,以便不同的应用程序能够相互通信和交换信息。
努力的小雨
2023/11/28
6190
相关推荐
AIOps系列 | 开发 K8s GPT 故障诊断工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档