问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Kubernetes 集群状态异常排错

发布网友 发布时间:2023-02-08 03:15

我来回答

1个回答

热心网友 时间:2023-07-22 01:05

本章介绍集群状态异常的排错方法,包括 Kubernetes 主要组件以及必备扩展(如 kube-dns)等,而有关网络的异常排错请参考 网络异常排错方法 。

排查集群状态异常问题通常从 Node 和 Kubernetes 服务 的状态出发,定位出具体的异常服务,再进而寻找解决方法。集群状态异常可能的原因比较多,常见的有

按照不同的组件来说,具体的原因可能包括

为了维持集群的健康状态,推荐在部署集群时就考虑以下

一般来说,可以首先查看 Node 的状态,确认 Node 本身是不是 Ready 状态

如果是 NotReady 状态,则可以执行 kubectl describe node <node-name> 命令来查看当前 Node 的事件。这些事件通常都会有助于排查 Node 发生的问题。

在排查 Kubernetes 问题时,通常需要 SSH 登录到具体的 Node 上面查看 kubelet、docker、iptables 等的状态和日志。在使用云平台时,可以给相应的 VM 绑定一个公网 IP;而在物理机部署时,可以通过路由器上的端口映射来访问。但更简单的方法是使用 SSH Pod (不要忘记替换成你自己的 nodeName):

接着,就可以通过 ssh 服务的* IP 来登录 Node,如 ssh user@52.52.52.52 。

在使用完后, 不要忘记删除 SSH 服务 kubectl delete -f ssh.yaml 。

一般来说,Kubernetes 的主要组件有两种部署方法

使用 systemd 等管理控制节点服务时,查看日志必须要首先 SSH 登录到机器上,然后查看具体的日志文件。如

或者直接查看日志文件

而对于使用 Static Pod 部署集群控制平面服务的场景,可以参考下面这些查看日志的方法。

查看 Kubelet 日志需要首先 SSH 登录到 Node 上。

Kube-proxy 通常以 DaemonSet 的方式部署

由于 Dashboard 依赖于 kube-dns,所以这个问题一般是由于 kube-dns 无法正常启动导致的。查看 kube-dns 的日志

可以发现如下的错误日志

这说明 kube-dns pod 无法转发 DNS 请求到上游 DNS 服务器。解决方法为

如果错误日志中不是转发 DNS 请求超时,而是访问 kube-apiserver 超时,比如

这说明 Pod 网络(一般是多主机之间)访问异常,包括 Pod->Node、Node->Pod 以及 Node-Node 等之间的往来通信异常。可能的原因比较多,具体的排错方法可以参考 网络异常排错指南 。

重启 kubelet 时报错 Failed to start ContainerManager failed to initialise top level QOS containers (参考 #43856 ),临时解决方法是:

该问题已于2017年4月27日修复(v1.7.0+, #44940 )。更新集群到新版本即可解决这个问题。

当 NodeAllocatable 特性未开启时(即 kubelet 设置了 --cgroups-per-qos=false ),查看 node 的事件会发现每分钟都会有 Failed to update Node Allocatable Limits 的警告信息:

如果 NodeAllocatable 特性确实不需要,那么该警告事件可以忽略。但根据 Kubernetes 文档 Reserve Compute Resources for System Daemons ,最好开启该特性:

开启方法为:

kube-proxy 报错,并且 service 的 DNS 解析异常

解决方式是安装 conntrack-tools 包后重启 kube-proxy 即可。

正常情况下,Dashboard 首页应该会显示资源使用情况的图表,如

如果没有这些图表,则需要首先检查 Heapster 是否正在运行(因为Dashboard 需要访问 Heapster 来查询资源使用情况):

如果查询结果为空,说明 Heapster 还未部署,可以参考 https://github.com/kubernetes/heapster 来部署。

但如果 Heapster 处于正常状态,那么需要查看 dashboard 的日志,确认是否还有其他问题

查看 HPA 的事件,发现

这说明 metrics-server 未部署,可以参考 这里 部署。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有效的教学激励策略有哪些 手机充电嗡嗡响怎么回事 手机在充电时发出嗡嗡作响 手机充电头快充有嗡嗡的声音 影视多媒体设计真的不好找工作吗 专科学影视多媒体技术好就业吗 影视多媒体技术专业就业怎么样 影视多媒体技术就业率 胆结石病人在输血后半个月,全身开始发痒是什么原因,怎样能够止痒呢?谢 ... 有关胆结石手术后的恢复,求教 ...通过手机发抖音就变得很模糊,mp4格式,请问有办法解决吗? 梦见井水捞胡桃花生树叶 虎和兔做夫妻好不好,男属虎女属兔婚姻状况 厨师胡桃生有徒弟吗 电视机有usb接口能接网络盒子吗 声临其境张含韵配哪吒是哪一期 声临其境张丰毅那期嘉宾有谁 张国荣是谁配的音尹正吗 畜产品展销简报标题怎么写 帮我们的宝贝起个好听的名字。男孩,父母都姓宋。 父亲姓宋85年生.母亲姓宋85年生.帮起名:要求三个字,后两字不重复.名义... 父母姓宋父属狗母属鼠男孩今11月出生以子起名起什么名字好 请问《读者》(原创)的投稿邮箱是什么? 我在股票交易的时候,买入股票时出现 : 提交失败:[920123]未指定帐户: 。谁知道这是什么意思啊? 苹果手机装两个,怎么弄? 如何在同一部手机上同时登陆两个 手机号码怎么添加? 微信压缩包超过两百兆怎么办 黄鳝和泥鳅有什么区别 哪个口感更好? 在excel中最适合反映数据的发展趋势的一种图表类型是什么 wps拆分文件后在哪里 请问韩剧天空之城是什么剧? 刀郎最好听的12首歌联唱 印度脆球是怎么膨胀 电视剧魔法大逃亡中演稽查队队长的是谁 三巽地产会破产吗 秦凌兵马俑怎么建成的,为什么建 秦凌兵马俑的凌和俑是什么意思 我键盘没有那个键怎么办? 玉米桔杆打包机都什么形号多少钱 服刑人员的政治面貌如何填写 服刑人员社会关系调查表怎么填写 服刑人员子女如何填写家庭成员表 服刑人员一生政治面貌都有记录吗 哪里能看梁宏达 梁宏达连线音频是哪档 三寰集团有限公司是上市公司吗 浙G 16p1q这个车牌好吗? 惠普245g7怎么样 在EXCEL表中的一个公示 =J41/$J$40*$G$40 求高人指导下,这个是什么意思... 惠普g4-2112TX(C0N16PA)能升到4G吗