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