帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
检测节点运行状况问题并启用自动节点修复
节点运行状况是指节点的运行状态以及有效运行工作负载的能力。运行正常的节点可以保持预期的网络连接,拥有充分的计算和存储资源,并能成功运行工作负载而不中断。
为帮助保持 EKS 集群中运行正常的节点,EKS 提供了节点监控代理和节点自动修复功能。这些功能在 EKS Auto Mode 计算中会自动启用。您也可以将自动节点修复与 EKS 托管节点组和 Karpenter 结合使用,并可以将 EKS 节点监控代理与除 AWS Fargate 之外的任何 EKS 计算类型结合使用。EKS 节点监控代理和自动节点修复功能结合使用效果最佳,但也可以在 EKS 集群中单独使用。
重要
节点监控代理和节点自动修复功能仅支持 Linux。这些功能不支持 Windows。
节点监控代理
Amazon EKS 节点监控代理会读取节点日志以检测运行状况问题。此代理会解析节点日志以检测故障,并显示有关节点运行状况的状态信息。对于检测到的每一类问题,代理都会对工作节点应用专用的 NodeConditionWorker 节点。有关 EKS 节点监控代理检测到的节点运行状况问题的详细信息,请参阅 使用 EKS 节点监控代理检测节点运行状况问题。
EKS Auto Mode 计算包含节点监控代理。对于其他 EKS 计算类型,您可以将节点监控代理作为 EKS 附加组件添加,或者使用 Kubernetes 工具(如 Helm)进行管理。有关更多信息,请参阅 配置节点监控代理。
使用 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)。 |
自动节点修复
EKS 自动节点修复会持续监控节点运行状况,对检测到的问题做出响应,并在可能时替换或重启节点。这能以最少的人工干预提高集群可靠性,并有助于减少应用程序停机时间。
单独使用时,EKS 自动节点修复会对 kubelet 的 Ready 状况、任何手动删除的节点对象以及未能加入集群的 EKS 托管节点组实例做出响应。当启用 EKS 自动节点修复并安装了节点监控代理时,EKS 自动节点修复会对以下额外的节点状况做出响应:AcceleratedHardwareReady、ContainerRuntimeReady、KernelReady、NetworkingReady 和 StorageReady。
EKS 的自动节点修复不会对标准的 Kubernetes DiskPressure、MemoryPressure 或 PIDPressure 节点状况做出响应。这些情况通常表明是应用程序行为、工作负载配置或资源限制方面存在问题,而非节点层面出现故障所致,因此难以确定合适的默认修复措施。在这些场景中,工作负载受到 Kubernetes 节点压力驱逐行为
有关 EKS 自动节点修复的更多信息,请参阅 自动修复 EKS 集群中的节点。