

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 检测节点运行状况问题并启用自动节点修复
<a name="node-health"></a>

节点运行状况是指节点的运行状态以及有效运行工作负载的能力。运行正常的节点可以保持预期的网络连接，拥有充分的计算和存储资源，并能成功运行工作负载而不中断。

为帮助保持 EKS 集群中运行正常的节点，EKS 提供了*节点监控代理*和*节点自动修复*功能。这些功能在 EKS Auto Mode 计算中会自动启用。您也可以将自动节点修复与 EKS 托管节点组和 Karpenter 结合使用，并可以将 EKS 节点监控代理与除 AWS Fargate 之外的任何 EKS 计算类型结合使用。EKS 节点监控代理和自动节点修复功能结合使用效果最佳，但也可以在 EKS 集群中单独使用。

**重要**  
*节点监控代理*和*节点自动修复*功能仅支持 Linux。这些功能不支持 Windows。

## 节点监控代理
<a name="node-monitoring-agent"></a>

Amazon EKS 节点监控代理会读取节点日志以检测运行状况问题。此代理会解析节点日志以检测故障，并显示有关节点运行状况的状态信息。对于检测到的每一类问题，代理都会对工作节点应用专用的 `NodeCondition`Worker 节点。有关 EKS 节点监控代理检测到的节点运行状况问题的详细信息，请参阅 [使用 EKS 节点监控代理检测节点运行状况问题](node-health-nma.md)。

EKS Auto Mode 计算包含节点监控代理。对于其他 EKS 计算类型，您可以将节点监控代理作为 EKS 附加组件添加，或者使用 Kubernetes 工具（如 Helm）进行管理。有关更多信息，请参阅 [配置节点监控代理](node-health-nma.md#node-monitoring-agent-configure)。

使用 EKS 节点监控代理，以下类别的节点运行状况问题会以节点状况的形式呈现。注意、`Ready`、`DiskPressure` 和 `MemoryPressure` 是标准的 Kubernetes 节点状况，即使没有 EKS 节点监控代理也会呈现。


| 节点状况 | 说明 | 
| --- | --- | 
|  AcceleratedHardwareReady  |  AcceleratedHardwareReady 表示节点上的加速硬件（GPU、Neuron）是否正常运行。  | 
|  ContainerRuntimeReady  |  ContainerRuntimeReady 表示容器运行时（containererd 等）是否正常运行并能运行容器。  | 
|  DiskPressure  |  DiskPressure 是一个标准的 Kubernetes 状况，表示节点正在经历磁盘压力（磁盘空间不足或 I/O 过高）。  | 
|  KernelReady  |  KernelReady 表示内核是否运行正常，无严重错误、死锁或资源耗尽问题。  | 
|  MemoryPressure  |  MemoryPressure 是一个标准的 Kubernetes 状况，表示节点正在经历内存压力（可用内存不足）。  | 
|  NetworkingReady  |  NetworkingReady 表示节点的网络堆栈（接口、路由、连接）是否正常运行。  | 
|  StorageReady  |  StorageReady 表示节点的存储子系统（磁盘、文件系统、I/O）是否正常运行。  | 
|  Ready  |  Ready 是标准的 Kubernetes 状况，表示节点运行正常并已准备好接收容器组（pod）。  | 

## 自动节点修复
<a name="node-auto-repair"></a>

EKS 自动节点修复会持续监控节点运行状况，对检测到的问题做出响应，并在可能时替换或重启节点。这能以最少的人工干预提高集群可靠性，并有助于减少应用程序停机时间。

单独使用时，EKS 自动节点修复会对 kubelet 的 `Ready` 状况、任何手动删除的节点对象以及未能加入集群的 EKS 托管节点组实例做出响应。当启用 EKS 自动节点修复并安装了节点监控代理时，EKS 自动节点修复会对以下额外的节点状况做出响应：`AcceleratedHardwareReady`、`ContainerRuntimeReady`、`KernelReady`、`NetworkingReady` 和 `StorageReady`。

EKS 的自动节点修复不会对标准的 Kubernetes `DiskPressure`、`MemoryPressure` 或 `PIDPressure` 节点状况做出响应。这些情况通常表明是应用程序行为、工作负载配置或资源限制方面存在问题，而非节点层面出现故障所致，因此难以确定合适的默认修复措施。在这些场景中，工作负载受到 Kubernetes [节点压力驱逐行为](https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction)的约束。

有关 EKS 自动节点修复的更多信息，请参阅 [自动修复 EKS 集群中的节点](node-repair.md)。

**Topics**