选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

启用节点自动修复并调查节点运行状况问题

聚焦模式
启用节点自动修复并调查节点运行状况问题 - Amazon EKS

帮助改进此页面

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

帮助改进此页面

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

节点运行状况是指节点的运行状态以及有效运行工作负载的能力。运行正常的节点可以保持预期的连接,拥有充分的资源,并且可以在不中断的情况下成功运行容器组。要了解如何获取节点详细信息,请参阅查看节点运行状况检查状态使用 kubectl 和 S3 检索托管式节点的节点日志

为帮助保持运行正常的节点,Amazon EKS 提供了节点监控代理和节点自动修复功能。

节点监控代理

节点监控代理会自动读取节点日志以检测某些运行状况问题。此代理会解析节点日志以检测故障,并显示有关 Worker 节点的各种状态信息。对于检测到的每类问题(例如存储和联网问题),都会在 Worker 节点上应用一个专门的 NodeCondition。对于检测到的运行状况问题,相关描述可以在可观测性控制面板中查看。有关更多信息,请参阅 节点运行状况问题

节点监控代理是所有 Amazon EKS 自动模式集群中都包含的一项功能。对于其他集群类型,您可以将监控代理作为 Amazon EKS 附加组件添加。有关更多信息,请参阅 创建 Amazon EKS 附加组件

节点自动修复

节点自动修复是一项附加功能,可以持续监控节点的运行状况,自动对检测到的问题做出反应,并在可能的情况下更换节点。这有助于在尽可能减少手动干预的情况下提高集群的整体可用性。如果运行状况检查失败,则会自动封锁该节点,从而确保不会在该节点上调度新的容器组。

节点自动修复功能本身可以对 kubeletReady 状况以及任何手动删除的节点对象做出反应。与节点监控代理配合使用时,节点自动修复功能可以对更多原本无法检测到的状况做出反应。这些额外的状况包括 KernelReadyNetworkingReadyStorageReady

这种自动节点恢复功能可自动解决间歇性节点问题,例如加入集群失败、kubelet 无响应以及加速器(设备)错误增加等。由于提高了可靠性,因此有助于减少应用程序停机时间并优化集群运行。节点自动修复无法处理报告的某些问题,例如 DiskPressureMemoryPressurePIDPressure。Amazon EKS 会等待 10 分钟后才针对 AcceleratedHardwareReady NodeConditions 执行操作,对于所有其他状况则会等待 30 分钟。

出于安全考虑,托管式节点组在这种两种情况下还将自动禁用节点修复。在这两种情况下,以前正在进行的任何修复操作都将继续执行。

  • 如果通过应用程序恢复控制器(ARC)触发了集群可用区转移,则所有后续修复操作都将停止。

  • 如果节点组的节点数量超过五个,并且节点组中超过 20% 的节点处于运行不正常状态,则修复操作也将停止。

您可以在创建或编辑托管式节点组时启用节点自动修复。

节点运行状况问题

下表介绍了节点监控代理可能会检测到的节点运行状况问题。问题有两种类型:

  • 状况 – 需要采取补救措施(例如替换实例或重启实例)的终端问题。启用自动修复后,Amazon EKS 将执行修复操作,可能是替换或重启节点。有关更多信息,请参阅 节点状况

  • 事件 – 暂时性问题或节点配置不佳问题。不会执行任何自动修复操作。有关更多信息,请参阅 节点事件

节点内核运行状况问题

名称 严重性 描述

ForkFailedOutOfPID

状况

由于系统进程 ID 或内存不足,fork 或 exec 调用失败,这可能是僵尸进程或物理内存耗尽造成的。

AppBlocked

事件

任务被长时间禁止调度,这通常是由于在输入或输出时被屏蔽所致。

AppCrash

事件

节点上的应用程序已崩溃。

ApproachingKernelPidMax

事件

根据当前 kernel.pid_max 设置,进程数量已接近可用 PID 的最大数量,之后将无法启动更多进程。

ApproachingMaxOpenFiles

事件

按照当前内核设置,打开的文件数已接近可能打开的最大文件数,之后打开新文件将失败。

ConntrackExceededKernel

事件

连接跟踪超出内核的最大值且无法建立新连接可能会导致数据包丢失。

ExcessiveZombieProcesses

事件

无法完全回收的进程正在大量积累,这指示存在应用程序问题,并且可能导致达到系统进程限制。

KernelBug

事件

Linux 内核本身检测到并报告了内核错误,但这有时可能是由节点的 CPU 或内存使用率过高,导致事件处理延迟造成的。

LargeEnvironment

事件

此进程的环境变量数大于预期,这可能是因许多将 enableServiceLinks 设置为 true 的服务造成的,因为这可能导致性能问题。

RapidCron

事件

cron 作业在此节点上的运行速度超过每五分钟一次,如果该作业消耗大量资源,则可能会影响性能。

SoftLockup

事件

CPU 在给定时间停滞。

节点联网运行状况问题

名称 严重性 描述

InterfaceNotRunning

状况

此接口似乎未运行或存在网络问题。

InterfaceNotUp

状况

此接口似乎未启动或存在网络问题。

IPAMDNotReady

状况

IPAMD 无法连接到 API 服务器。

IPAMDNotRunning

状况

未发现 aws-k8s-agent 进程正在运行。

MissingLoopbackInterface

状况

此实例缺少环回接口,导致服务失败,具体取决于本地连接。

BandwidthInExceeded

事件

因入站总带宽超过实例的最大值,导致数据包已排队或被丢弃。

BandwidthOutExceeded

事件

因出站总带宽超过实例的最大值,导致数据包已排队或被丢弃。

ConntrackExceeded

事件

连接跟踪超出实例的最大值且无法建立新连接,这可能会导致数据包丢失。

IPAMDNoIPs

事件

IPAM-D 的 IP 地址已用完。

IPAMDRepeatedlyRestart

事件

IPAMD 服务已多次重启。

KubeProxyNotReady

事件

Kube-proxy 无法观察或列出资源。

LinkLocalExceeded

事件

由于到本地代理服务的流量 PPS 超出网络接口的最大值,数据包被丢弃。

MissingDefaultRoutes

事件

缺少默认路由规则。

MissingIPRules、MissingIPRoutes

事件

路由表中缺少以下容器组 IP 的路由规则。

NetworkSysctl

事件

此节点的网络 sysctl 设置可能不正确。

PortConflict

事件

如果容器组使用 hostPort,则可能写入会覆盖主机已经绑定端口的 iptables 规则,这可能会阻止 API 服务器访问 kubelet

PPSExceeded

事件

因双向 PPS 超过实例的最大值,数据包已排队或被丢弃。

UnexpectedRejectRule

事件

在 iptables 中发现了可能阻止了预期流量的异常 REJECTDROP 规则。

节点 Neuron 运行状况问题

名称 严重性 描述

NeuronDMAError

状况

DMA 引擎遇到不可恢复的错误。

NeuronHBMUncorrectableError

状况

HBM 遇到无法纠正的错误并产生了不正确的结果。

NeuronNCUncorrectableError

状况

检测到无法纠正的 Neuron Core 内存错误。

NeuronSRAMUncorrectableError

状况

片上 SRAM 遇到奇偶校验错误并产生了不正确的结果。

节点 NVIDIA 运行状况问题

如果启用了自动修复,则列出的修复操作将在检测到问题 10 分钟后开始。有关 XID 错误的更多信息,请参阅《NVIDIA GPU 部署和管理文档》中的 Xid Errors。有关单个 XID 消息的更多信息,请参阅《NVIDIA GPU 部署和管理文档》中的 Understanding Xid Messages

名称 严重性 描述 修复操作

NvidiaDoubleBitError

状况

GPU 驱动程序产生了双比特错误。

Replace(替换)

NvidiaNVLinkError

状况

GPU 驱动程序报告了 NVLink 错误。

Replace(替换)

NvidiaXID13Error

状况

有一个图形引擎异常。

Reboot

NvidiaXID31Error

状况

疑似存在硬件问题。

Reboot

NvidiaXID48Error

状况

驱动程序报告了双比特 ECC 错误。

Reboot

NvidiaXID63Error

状况

存在页面停用或行重映射。

Reboot

NvidiaXID64Error

状况

尝试停用页面或执行节点重映射失败。

Reboot

NvidiaXID74Error

状况

通过 NVLink 从 GPU 连接到另一个 GPU 或 NVSwitch 时出现问题。这可能指示链路本身存在硬件故障,也可能指示链路远程端的设备有问题。

Replace(替换)

NvidiaXID79Error

状况

GPU 驱动程序尝试通过其 PCI Express 连接访问 GPU,但发现 GPU 无法访问。

Replace(替换)

NvidiaXID94Error

状况

存在 ECC 内存错误。

Reboot

NvidiaXID95Error

状况

存在 ECC 内存错误。

Reboot

NvidiaXID119Error

状况

GSP 在响应来自驱动程序中其他位的 RPC 请求时超时。

Replace(替换)

NvidiaXID120Error

状况

GSP 已及时响应,但出现了错误。

Replace(替换)

NvidiaXID121Error

状况

C2C 是指芯片互连,有助于在 CPU、加速器等之间共享内存。

Replace(替换)

NvidiaXID140Error

状况

GPU 驱动程序可能已观察到 GPU 内存中存在无法纠正的错误,从而中断 GPU 驱动程序将页面标记为动态页面脱机或行重映射的能力。

Replace(替换)

NvidiaPageRetirement

事件

GPU 驱动程序已将内存页标记为停用。如果出现单个双比特错误或在同一地址遇到两个单比特错误,则可能会发生这种情况。

NvidiaXID[Code]Warning

事件

除此列表中所定义 XID 外,出现任何 XID 都会导致此事件。

节点运行时运行状况问题

名称 严重性 描述

PodStuckTerminating

状况

容器组正在或曾经过长时间停滞在正在终止状态,这可能是因 CRI 错误阻止容器组状态进展造成的。

%sRepeatedRestart

事件

节点上的任何 systemd 服务重新启动(单位名称使用标题大小写格式)。

ContainerRuntimeFailed

事件

容器运行时创建容器失败,如果反复发生,则可能与任何报告的问题有关。

KubeletFailed

事件

kubelet 处于某个失败状态。

LivenessProbeFailures

事件

检测到存活探针失败,如果反复发生,则可能指示应用程序代码问题或超时值不足。

ReadinessProbeFailures

事件

检测到就绪探针失败,如果反复发生,则可能指示应用程序代码问题或超时值不足。

ServiceFailedToStart

事件

系统单元启动失败。

节点存储运行状况问题

名称 严重性 描述

XFSSmallAverageClusterSize

状况

XFS 平均集群大小很小,这指示可用空间碎片过多,因此无法创建文件,尽管有索引节点或可用空间可用。

EtcHostsMountFailed

事件

由于在 kubelet-container 操作过程中进行了用户数据重新挂载 /etc/hosts,因此挂载 kubelet 生成的 /var/lib/kubelet/pods 失败。

IODelays

事件

在进程中检测到输入或输出延迟,如果过长,则可能表明预调配的输入输出读写操作次数不足。

KubeletDiskUsageSlow

事件

Kubelet 报告在尝试访问文件系统时磁盘使用率很慢,这可能表明磁盘预调配的输入输出读写操作次数不足或文件系统存在问题。

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。