故障诊断
更新时间:2025-04-07
概述
百度云容器引擎(CCE)故障诊断功能提供自动化异常检测与根因定位能力,支持对集群核心组件的健康状态进行系统性检查,帮您快速识别常见配置错误、资源瓶颈及组件故障。
前提条件
- 已创建CCE集群。具体操作,请参见创建集群
- 已确保Kubernetes集群处于正常运行状态。
诊断功能介绍
当前版本重点覆盖 节点级 与 Pod级 资源异常诊断,详细诊断项参考文档下方说明。
开启故障诊断
重要:故障诊断功能采集的信息包括系统版本、负载、docker、kubelet等组件运行状态,系统日志中关键错误信息。诊断全程遵循数据安全规范,不涉及任何业务及敏感数据。
节点诊断和Pod诊断操作类似,下文以开启节点诊断为例,介绍如何使用故障诊断功能。
方式一:
- 登录百度智能云管理控制台,进入“产品服务>云原生>容器引擎 CCE”,点击“集群管理>集群列表”,进入集群列表页面。
- 单击目标集群名称,然后在左侧导航栏【巡检与诊断】中,选择“故障诊断”。
- 在集群巡检选择【节点诊断】Tab,单击【立即诊断】
- 在节点诊断弹窗选择节点名称,仔细阅读注意事项后选中我已知晓并同意,然后单确认发起诊断。
方式二: - 在目标集群的节点列表页,操作列选择【故障诊断】
- 跳转到节点诊断弹窗后,仔细阅读注意事项后选中我已知晓并同意,然后单确认发起诊断。
发起诊断后,您可以根据任务诊断中的状态查看诊断进展。
查看诊断结果
在故障诊断页面诊断列表页,单击目标诊断报告对应的诊断详情,在诊断详情页面查看详细诊断结果。
节点诊断项及说明
Node 节点
诊断项名称 | 诊断项说明 | 修复方案 |
---|---|---|
节点状态 | 确认节点状态为 Ready。 | 请尝试重启节点 |
节点调度状态 | 确认节点未被标记为不可调度。 | 节点不可调度,请检查节点封锁设置。具体操作,请参见设置节点封锁。 |
BCC 实例是否存在 | 检查节点对应的 BCC 实例存在。 | 检查BCC实例状态。 |
BCC 实例健康状态 | 检查节点对应的 BCC 实例运行正常。 | 检查BCC实例状态。 |
节点 CPU 使用率 | 检查节点当前 CPU 使用率处于正常范围。 | 无 |
节点内存使用率 | 检查节点当前内存使用率处于正常范围。 | 无 |
节点周 CPU 水位 | 检查节点过去一周 CPU 使用率未持续过高,避免资源争抢影响业务。 | 为避免业务受到影响,请设置合理的Pod request和limit,避免一个节点上运行的Pod过多。 |
节点周内存水位 | 检查节点过去一周内存使用率未持续过高,避免 OOM 影响业务。 | 为避免业务受到影响,请设置合理的Pod request和limit,避免一个节点上运行的Pod过多。 |
节点 OOM 事件 | 检查节点未发生 OOM (内存溢出) 事件。 | 登陆节点,查看Pod所在节点的内核日志/var/log/messages |
Kubelet 状态 | 检查节点 Kubelet 运行正常。 | 请检查节点Kubelet日志。 |
Containerd 状态 | 检查节点 Containerd 服务运行正常。 | 登陆节点,查看节点的内核日志/var/log/messages |
Docker 状态 | 检查节点 Docker 服务运行正常。 | 登陆节点,查看节点的内核日志/var/log/messages |
Docker hang检测 | 检查节点未发生 Docker hang情况。 | 请尝试登录节点,通过命令systemctl restart docker重启Docker。 |
API Server 连接 | 检查节点可正常连接集群 API Server。 | 请检查集群相关配置。 |
节点 DNS 服务 | 检查节点可正常使用主机 DNS 服务。 | 请检查主机DNS服务是否正常。更多信息,请参见DNS问题排查指南。 |
集群 DNS 服务 | 检查节点访问集群kube-dns服务的Cluster IP,正常使用集群的DNS服务 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS问题排查指南。 |
集群CoreDNS Pod可用性 | 检查节点可正常访问集群 CoreDNS的Pod IP地址。 | 请检查节点能否正常访问CoreDNS的Pod IP地址。 |
Containerd 镜像拉取 | 检查节点 Containerd 可正常拉取镜像。 | 请检查节点网络及镜像配置。 |
Docker 镜像拉取状态 | 检查节点 Docker 可正常拉取镜像。 | 请检查节点网络及镜像配置。 |
NodeComponent 节点核心组件
诊断项名称 | 诊断项说明 | 修复建议 |
---|---|---|
CNI 组件状态 | 检查节点 CNI组件运行正常。 | 请提交工单处理。 |
CSI 组件状态 | 确认节点 CSI 组件运行正常。 | 请前往CCE集群-运维与管理-组件管理-存储,检查集群件存储组件状态。 |
Network Agent 状态 | 确认节点 Network Agent 服务运行正常。 | 请提交工单处理。 |
Network Operator 状态 | 确认集群 Network Operator 服务运行正常。 | 请提交工单处理。 |
ClusterComponent 集群组件
诊断项名称 | 诊断项说明 | 修复建议 |
---|---|---|
Pod网段余量 | 确认 VPC路由模式下集群剩余可用 PodCIDR 网段大于 5 个,避免 Pod 网段耗尽导致新节点无法正常工作。 | 请提交工单处理。 |
DNS 服务 ClusterIP | 确认集群 DNS 服务的 Cluster IP 已正常分配,DNS 服务异常将导致集群功能异常,影响业务 | 请检查CoreDNS Pod运行状态和运行日志。更多信息,请参见DNS问题排查指南 |
API Server BLB 实例状态 | 确认 API Server BLB 实例运行正常。 | 前往BLB应用型实例页面找到集群关联的BLB实例,在实例详情里检查BLB实例状态。 |
API Server BLB 实例是否存在 | 确认 API Server BLB 实例存在。 | 前往BLB应用型实例页面检查集群关联的BLB实例是否存在。 |
API Server BLB 6443 端口监听 | 确认 API Server BLB 6443 端口监听配置正确。 | 前往BLB应用型实例页面找到集群关联的BLB实例,检查BLB实例目标组的配置。 |
节点与容器子网可用区一致性 | 确认 VPC-ENI 模式下节点和容器子网位于同一可用区。 | 查看CCE集群详情,找到容器网络,添加子网并确保节点和子网位于同一可用区。 |
子网 IP 余量 | 确认 VPC-ENI 模式下子网剩余 IP 数量充足。 | 查看CCE集群详情,找到容器网络,添加子网。 |
Pod诊断项及说明
诊断项名称 | 诊断项说明 | 修复建议 |
---|---|---|
Pod 容器重启次数 | 统计 Pod 内容器的重启次数,识别异常重启情况。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod 容器镜像下载 | 检查 Pod 所在节点是否存在其他 Pod 的镜像下载阻塞,避免资源竞争。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod 容器镜像拉取 Secrets 有效性 | 检查 Pod 拉取镜像所需的 Secrets 有效,避免镜像拉取失败。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod 内存使用情况 | 检查 Pod 内存使用率 ≤ 95%,避免内存过高导致 OOM 影响业务 | 1.通过工作负载页面或使用kubectl编辑工作负载YAML,找到resources字段,调整资源配额(Request、Limit)。 2.通过工作负载页面点击伸缩增加期待Pod数,或使用kubectl编辑工作负载YAML增加实例数。 3.配置弹性伸缩(HPA)。 |
Pod CPU使用情况 | 检查 Pod CPU 使用率 ≤ 95%,避免 CPU 过高导致资源争抢影响业务。 | 1.通过工作负载页面或使用kubectl编辑工作负载YAML,找到resources字段,调整资源配额(Request、Limit)。 2.通过工作负载页面点击伸缩增加期待Pod数,或使用kubectl编辑工作负载YAML增加实例数。 3.配置弹性伸缩(HPA)。 |
Pod到CoreDNS Pods的连通性 | 检查 Pod 可正常访问 CoreDNS Pods | 检查Pod到CoreDNS Pods的连通性。 |
Pod到CoreDNS Service的连通性 | 检查 Pod 可正常访问 CoreDNS Service | 检查Pod到CoreDNS Pods的连通性。 |
Pod到主机网络DNS服务器的连通性 | 检查 Pod 可正常访问主机网络 DNS 服务器 | 检查Pod到主机网络DNS服务器的连通性。 |
Pod初始化状态 | 检查 Pod 已完成初始化,进入正常运行阶段。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod调度状态 | 检查 Pod 已被成功调度到目标节点。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod是否可调度 | 检查 Pod 满足调度条件,可被调度到合适节点。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |
Pod状态 | 检查 Pod 当前状态符合预期,例如 Running、Pending 等。 | 请检查Pod状态及日志。更多信息,请参见Pod异常问题排查。 |