健康诊断
概述
健康诊断是容器智能分析的一个重要功能,用于诊断集群的健康状态。开通容器智能分析后,健康诊断将基于集群的配置和kube-prometheus-stack插件上报至AOM的指标,从集群、节点、工作负载、核心插件、外部依赖的维度出发,提供全面的集群健康状态检查。同时,该功能还基于Kubernetes集群的运维最佳实践,提供相应的诊断结果和修复建议。
约束与限制
- 集群版本高于v1.17。
- 集群处于“运行中”状态。
查看巡检详情
- 选择一个容器舰队或者未加入舰队的集群。
图1 选择舰队或未加入舰队的集群
- 单击“健康诊断”页签,您可通过健康诊断功能查看各个集群的正常比例及风险数量。
图2 健康诊断
- 下拉到“诊断结果”,查看当前集群巡检诊断结果。
单击,单击“诊断详情”,可进入健康诊断详情页查看诊断项和诊断结果。图3 诊断结果
配置定时巡检规则
- 选择一个容器舰队或者未加入舰队的集群。
图4 选择舰队或未加入舰队的集群
- 单击“容器洞察 > 集群总览”页签查看已开启监控的集群。
- 单击上方“健康诊断”,进入诊断详情页,在右边开启“定时巡检”,配置定时任务启动的时间。
集群将在指定时间自动开始集群巡检任务。单个集群,每天仅支持配置一个定时巡检时间。
图5 定时巡检设置
也可按照查看巡检详情指导进入单集群巡检详情页面。
发起诊断
- 按照查看巡检详情指导进入单集群巡检页面。
- 在下方“巡检集群”中选择未巡检集群,单击“马上诊断”。
集群将开始执行诊断。诊断结束后,页面将自动刷新并展示诊断结果,其中无风险项将自动隐藏。
健康诊断将针对不同维度的巡检项,归纳Kubernetes中常见的问题,并提供相应的修复建议。您可以单击“诊断详情”查看具体诊断项的详细信息与修复建议。
图6 诊断详情
支持的巡检项
巡检维度 |
集群巡检场景 |
巡检项 |
集群 |
集群资源规划能力 |
集群Master节点是否高可用 |
集群CPU的Request水位是否超过80% |
||
集群CPU的Limit水位是否超过150% |
||
集群内存的Request水位是否超过80% |
||
集群内存的Limit水位是否超过150% |
||
集群版本是否超期 |
||
集群运维能力 |
集群kube-prometheus-stack插件状态是否正常 |
|
集群log-agent插件状态是否正常 |
||
集群npd插件状态是否正常 |
||
集群配置 |
安全组配置是否正确 |
|
核心插件 |
coredns插件状态 |
coredns近24小时cpu使用率最大值是否超过80% |
coredns近24小时内存使用率最大值是否超过80% |
||
coredns近24小时是否存在域名解析失败请求次数 |
||
coredns近24小时P99请求时延是否超过5s |
||
coredns插件状态 |
||
everest插件状态 |
everest插件状态 |
|
everest近24小时CPU使用率最大值是否超过80% |
||
everest近24小时内存使用率最大值是否超过80% |
||
kube-prometheus-stack插件状态 |
kube-prometheus-stack近24小时CPU使用率最大值是否超过80% |
|
kube-prometheus-stack近24小时内存使用率最大值是否超过80% |
||
kube-prometheus-status插件状态 |
||
kube-prometheus-status近24小时是否出现OOM |
||
kube-prometheus-status在Server部署模式下,prometheus-server的PVC使用率是否超过80% |
||
log-agent插件状态 |
log-agent插件状态 |
|
LTS日志组、日志流是否创建成功 |
||
LTS日志组结构化是否创建成功 |
||
autoscaler插件状态 |
集群在开启节点池弹性扩缩容条件下,autoscaler插件状态是否可用 |
|
节点 |
节点状态 |
节点状态是否就绪 |
节点状态不可调度 |
||
节点kubelet状态 |
||
节点配置 |
节点内存的Requset是否超过80% |
|
节点CPU的Request是否超过80% |
||
节点内存的Limit检查是否超过150% |
||
节点CPU的Limit检查是否超过150% |
||
节点资源水位诊断 |
节点24小时内CPU使用率最大值是否超过80% |
|
节点24小时内内存使用率最大值是否超过80% |
||
节点磁盘使用率是否超过80% |
||
节点PID使用量是否正常 |
||
节点24小时内是否发生OOM事件 |
||
负载 |
Pod状态 |
Pod状态检查 |
Pod负载状态 |
Pod在24小时内是否发生OOM |
|
Pod的24小时内CPU使用率最大值是否超过80% |
||
Pod的24小时内内存使用率最大值是否超过80% |
||
Pod配置 |
Pod中的容器是否配置Request |
|
Pod中的容器是否配置Limit |
||
Pod探针配置 |
Pod中的容器是否配置存活探针 |
|
Pod中的容器是否配置就绪探针 |
||
外部依赖 |
租户节点资源配额 |
租户云硬盘配额是否超过90% |
租户ECS配额充足是否超过90% |
巡检维度 |
集群巡检场景 |
巡检项 |
集群 |
集群资源规划能力 |
集群Master节点是否高可用 |
集群CPU的Request水位是否超过80% |
||
集群CPU的Limit水位是否超过150% |
||
集群内存的Request水位是否超过80% |
||
集群内存的Limit水位是否超过150% |
||
集群运维能力 |
集群kube-prometheus-stack插件状态是否正常 |
|
集群log-agent插件状态是否正常 |
||
核心插件 |
kube-prometheus-stack插件状态 |
kube-prometheus-stack近24小时CPU使用率最大值是否超过80% |
kube-prometheus-stack近24小时内存使用率最大值是否超过80% |
||
kube-prometheus-status插件状态 |
||
kube-prometheus-status近24小时是否出现OOM |
||
log-agent插件状态 |
log-agent插件状态 |
|
LTS日志组、日志流是否创建成功 |
||
LTS日志组结构化是否创建成功 |
||
节点 |
节点状态 |
节点状态是否就绪 |
节点状态不可调度 |
||
节点kubelet状态 |
||
节点配置 |
节点内存的Requset是否超过80% |
|
节点CPU的Request是否超过80% |
||
节点内存的Limit检查是否超过150% |
||
节点CPU的Limit检查是否超过150% |
||
节点资源水位诊断 |
节点24小时内CPU使用率最大值是否超过80% |
|
节点24小时内内存使用率最大值是否超过80% |
||
节点磁盘使用率是否超过80% |
||
节点PID使用量是否正常 |
||
节点24小时内是否发生OOM事件 |
||
负载 |
Pod状态 |
Pod状态检查 |
Pod负载状态 |
Pod在24小时内是否发生OOM |
|
Pod的24小时内CPU使用率最大值是否超过80% |
||
Pod的24小时内内存使用率最大值是否超过80% |
||
Pod配置 |
Pod中的容器是否配置Request |
|
Pod中的容器是否配置Limit |
||
Pod探针配置 |
Pod中的容器是否配置存活探针 |
|
Pod中的容器是否配置就绪探针 |
||
外部依赖 |
租户节点资源配额 |
租户云硬盘配额是否超过90% |
租户ECS配额充足是否超过90% |
巡检维度 |
集群巡检场景 |
巡检项 |
集群 |
集群资源规划能力 |
集群Master节点是否高可用 |
集群CPU的Request水位是否超过80% |
||
集群CPU的Limit水位是否超过150% |
||
集群内存的Request水位是否超过80% |
||
集群内存的Limit水位是否超过150% |
||
集群运维能力 |
集群kube-prometheus-stack插件状态是否正常 |
|
核心插件 |
kube-prometheus-stack插件状态 |
kube-prometheus-stack近24小时CPU使用率最大值是否超过80% |
kube-prometheus-stack近24小时内存使用率最大值是否超过80% |
||
kube-prometheus-status插件状态 |
||
kube-prometheus-status近24小时是否出现OOM |
||
节点 |
节点状态 |
节点状态是否就绪 |
节点状态不可调度 |
||
节点kubelet状态 |
||
节点配置 |
节点内存的Requset是否超过80% |
|
节点CPU的Request是否超过80% |
||
节点内存的Limit检查是否超过150% |
||
节点CPU的Limit检查是否超过150% |
||
节点资源水位诊断 |
节点24小时内CPU使用率最大值是否超过80% |
|
节点24小时内内存使用率最大值是否超过80% |
||
节点磁盘使用率是否超过80% |
||
节点PID使用量是否正常 |
||
节点24小时内是否发生OOM事件 |
||
负载 |
Pod状态 |
Pod状态检查 |
Pod负载状态 |
Pod在24小时内是否发生OOM |
|
Pod的24小时内CPU使用率最大值是否超过80% |
||
Pod的24小时内内存使用率最大值是否超过80% |
||
Pod配置 |
Pod中的容器是否配置Request |
|
Pod中的容器是否配置Limit |
||
Pod探针配置 |
Pod中的容器是否配置存活探针 |
|
Pod中的容器是否配置就绪探针 |
||
外部依赖 |
租户节点资源配额 |
租户云硬盘配额是否超过90% |
租户ECS配额充足是否超过90% |