Pod诊断主要包括Pod检查、ClusterComponent检查、Node检查、NodeComponent检查等检查项。
注意
使用故障诊断功能时,系统将在您的集群节点上执行数据采集程序并收集检查结果。采集的信息包括系统版本,负载、Docker、Kubelet等运行状态及系统日志中关键错误信息。数据采集程序不会采集您的业务信息及敏感数据。
Pod诊断对应的检查项
根据集群配置,具体检查项可能稍有不同。实际结果请以诊断页面结果为准。
诊断项分组 | 说明 |
Pod检查 | 检查Pod常见问题,检查项包括Pod状态、镜像拉取、网络连通性等。 |
ClusterComponent检查 | 检查集群常见问题,检查项包括APIServer可用性、DNS可用性、集群插件版本是否最新等。 |
Node检查 | 检查节点实例常见问题,检查项包括节点状态、网络状态、内核日志、核心进程和服务可用性等。 |
NodeComponent检查 | 检查节点核心组件状态,检查项包括网络和存储插件。 |
Pod检查
检查项名称 | 说明 | 修复方案 |
检查Pod是否存在 | 检查集群中是否存在该Pod。 | 请检查Pod在集群中对应命名空间下是否存在。 |
Pod容器重启次数统计 | 统计Pod中容器重启次数。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
检查Pod容器是否存在镜像下载阻塞情况 | 检查Pod容器对应的镜像下载被阻塞。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
检查Pod容器镜像Secrets是否有效 | 检查Pod拉取镜像的Secrets是否有效。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
检查Pod是否初始化成功 | 检查Pod是否正常初始化。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
检查Pod是否处于调度中状态 | 检查Pod是否正常调度。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
ClusterComponent检查
检查项名称 | 说明 | 修复方案 |
集群Kubernetes版本过低 | 检查集群Kubernetes版本是否为云容器引擎当前支持的最新版本。 | 请通过控制台集群升级功能更新集群kubernetes版本。 |
集群DNS服务ClusterIP | 检查集群DNS服务的Cluster IP是否正常分配,集群DNS服务异常会造成集群功能异常,影响业务。 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查。 |
集群DNS服务后端端点数 | 检查集群DNS服务Endpoints数,数量过少时影响CoreDNS的高可用性。 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查。 |
检查CoreDNS是否部署到不同节点上 | 检查CoreDNS是否配置了Pod反亲和,调度到不同的节点上,避免单一节点故障,提高可用性。 | 请检查集群CoreDNS是否配置了Pod反亲和。 |
检查NodeLocalDNS是否启用并给命名空间配置了自动注入 | 检查NodeLocalDNS插件是否安装,并给命名空间配置了自动注入,便于该命名空间下的Pod快速解析DNS。 | 请检查集群中是否安装了NodeLocalDNS插件并给命名空间配置了自动注入。 |
检查CoreDNS是否调度在Master节点上 | Master节点尽量避免业务Pod调度在其上,检查CoreDNS是否配置了nodeAffinity或nodeSelector导致调度到master节点上。 | 请检查CoreDNS是否配置了nodeAffinity或nodeSelector导致调度到master节点上。 |
检查集群APISever是否可用 | 检查节点能否正常连接集群API Server,访问集群中其他K8s资源。 | 请检查集群相关配置。检查Master组件Pod是否异常。API Server使用的负载均衡ELB是否异常。 |
检查集群免密插件版本是否最新 | 检查集群免密插件版本是否为为云容器引擎当前支持的最新版本。 | 集群免密插件版本检查过低,请尽快升级版本。 |
Node检查
检查项名称 | 说明 | 修复方案 |
检查节点是否存在 | 检查集群中是否存在该节点。 | 请检查Node在集群中是否存在。 |
检查节点状态是否Ready | 检查节点在集群中的状态是否为Ready。 | 请登录到节点上执行systemctl status kubelet或journalctl -exu kubelet查看节点上kubelet进程异常日志并尝试修复。 |
检查ECS实例是否存在 | 检查ECS实例是否存在。 | 请检查ECS实例状态。 |
检查ECS实例状态正常 | 检查ECS实例状态,实例状态异常时会影响Pod的正常运行。 | 请检查ECS实例状态。 |
检查节点状态是否不可调度 | 检查节点是否不可调度,不可调度的节点会影响Pod的正常运行。 | 节点不可调度,请检查节点调度设置。 |
检查节点Chronyd进程状态是否正常 | 检查节点Chronyd进程是否异常,该进程异常可能会影响系统时钟同步。 | 节点Chronyd进程异常,可能影响节点系统时间同步。请尝试通过命令systemctl restart chronyd重启节点Chronyd进程。 |
检查节点Ntpd进程状态是否正常 | 检查节点Ntpd进程是否异常,该进程异常可能会影响系统时钟同步。 | 节点Ntpd进程异常,可能影响节点系统时间同步。请尝试通过命令systemctl restart ntpd重启节点Ntpd进程。 |
检查节点Containerd状态是否正常 | 检查节点Containerd服务的状态,该进程异常时可能会影响Pod的正常运行。 | 节点Containerd状态异常,请收集节点日志并提交工单处理。 |
检查节点Containerd镜像拉取是否正常 | 检查节点Containerd进程拉取pause镜像是否正常。 | 请检查节点网络及镜像配置。 |
检查节点Docker状态是否正常 | 检查节点Dockerd服务的状态,该进程异常时可能会影响Pod的正常运行。 | 节点Docker状态异常,请收集节点日志并提交工单处理。 |
检查节点Docker镜像拉取是否正常 | 检查节点Docker进程拉取pause镜像是否正常。 | 请检查节点网络及镜像配置。 |
检查节点Kubelet状态是否正常 | 检查节点Kubelet服务的状态,该进程可能会影响Pod的正常运行。 | 请检查节点Kubelet日志。 |
检查节点Kubelet启动时间 | 检查节点Kubelet进程启动时间。 | 无 |
节点OS版本 | 检查节点操作系统版本。 | 无 |
节点内核版本 | 检查节点内核版本是否过低,内核版本过低可能造成系统异常。 | 请尝试更换节点升级内核。 |
节点Systemd版本 | 检查节点systemd版本。 | 无 |
节点runc版本 | 检查节点runc版本,runc版本过低可能造成系统异常。 | 无 |
节点系统时间 | 检查节点系统时间。 | 无 |
节点硬件时间 | 检查节点硬件时间。 | 无 |
节点硬件时间漂移 | 检查节点硬件时钟与系统时间是否一致,时间相差超过2分钟可能引起组件异常。 | 请尝试登录节点,通过命令hwclock --systohc将节点系统时间同步到硬件时间。 |
检查节点内存交换区开启情况 | 检查节点内存交换区 (Memory Swap) 功能是否开启,K8s默认要求关闭内存交换区。 | 当前节点内存交换区 (Memory Swap) 功能不支持开启,请登录节点关闭该功能。 |
检查Conntrack表使用情况 | 检查节点Conntrack表是否满,Conntrack表满可能影响网络性能。 | 请检查nf_conntrack_buckets和nf_conntrack_max内核参数。 |
检查节点访问集群API Server是否正常 | 检查节点能否正常连接集群API Server,访问集群中其他K8s资源。 | 请检查集群相关配置。检查Master组件Pod是否异常。API Server使用的负载均衡ELB是否异常。 |
节点DNS服务地址 | 检查节点能否正常使用主机DNS服务,通过主机DNS服务解析集群外域名。 | 请检查主机DNS服务是否正常。更多信息,请参见DNS解析异常问题排查。 |
集群DNS服务ClusterIP | 检查集群DNS服务的Cluster IP是否正常分配,集群DNS服务异常会造成集群功能异常,影响业务。 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查。 |
检查节点访问集群DNS服务是否正常 | 检查节点能否正常访问集群kube-dns服务的Cluster IP,通过集群的DNS服务解析集群内域名。 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS解析异常问题排查。 |
检查节点访问集群DNS后端端点是否正常 | 检查节点能否正常访问集群CoreDNS的Pod IP地址,通过CoreDNS进行域名解析。 | 请检查节点能否正常访问CoreDNS的Pod IP地址。更多信息,请参见DNS解析异常问题排查。 |
检查节点内网IP是否存在 | 检查节点内网IP是否存在。 | 节点内网IP不存在,请尝试移除节点后重新导入,移除时需保留ECS。 |
检查节点能否访问公网 | 检查节点能否正常访问公网,无法访问公网可能影响公网镜像拉取。 | 请检查集群是否开启SNAT公网访问。 |
节点CPU使用率 | 检查节点CPU负载是否过高,CPU负载过高可能影响系统性能。 | 无 |
节点内存使用率 | 检查节点内存负载是否过高,内存过高可能影响系统性能。 | 无 |