排查常见节点自动修复错误

当 Azure Kubernetes 服务 (AKS) 检测到状态超过 5 分钟的节点NotReady时,它会尝试自动修复节点。 节点自动修复是一项尽最大努力的服务。 它不保证节点可以还原到正常状态。 有关详细信息,请参阅 节点自动修复过程

在节点自动修复过程中,AKS 在运行不正常的节点上启动rebootreimageredeploy操作。 由于各种原因和错误代码,可以通过 Kubernetes 事件发现错误。 可以使用 Kubernetes 事件监视节点的状态和自动修复操作。

本文提供了常见节点自动修复错误的潜在原因和解决方案,并概述了监视节点自动修复过程的最佳做法。

先决条件

检查以下 Kubernetes 事件以确定节点自动修复错误的类型:

原因 事件消息 说明
NodeRebootError 节点自动修复重启操作由于操作失败而失败:[此处的错误代码] 当操作出错 reboot 时发出。
NodeReimageError 节点自动修复重置映像操作由于操作失败而失败:[此处的错误代码] 当操作出错 reimage 时发出。
NodeRedeployError 节点自动修复重新部署操作由于操作失败而失败:[此处的错误代码] 当操作出错 redeploy 时发出。

注意

由于节点在自动修复过程之前已处于不正常状态,因此在大多数情况下,节点自动修复错误不会影响群集或应用程序。 遇到节点自动修复错误时,建议按照“节点未就绪”故障的基本故障排除中的说明尝试修复节点。 如果无法将其还原到Succeeded状态,并看到节点自动修复报告的持久性错误,请联系Azure 支持寻求帮助。

常见错误代码

错误代码 原因和解决方法
VMExtensionProvisioningError VM 上无法预配一个或多个虚拟机(VM)扩展。 有关可能的错误类型和故障排除步骤的详细信息,请参阅排查ERR_VHD_FILE_NOT_FOUND错误代码(124)。 若要确定节点上的确切 VM 扩展预配错误,请在Azure 门户中查看错误详细信息。
InvalidParameter 如果节点自动修复进程尝试访问不再存在的节点,则会发生此错误。
scaleSetNameAndInstanceIDFromProviderID 失败 如果未正确预配节点,则会出现此问题。
ManagedIdentityCredential 身份验证失败 如果未正确初始化节点,则会出现此问题。
VMRedeploymentFailed 尝试重新部署节点时,会发生此错误。 在这种情况下,节点池可能进入失败状态。 有关潜在原因和故障排除步骤的详细信息,请参阅对处于失败状态的群集或节点进行故障排除Azure Kubernetes 服务。
TooManyVMRedeploymentRequests 当群集超出 VM 重新部署请求的限制时,会发生此错误。 Redeploy 是节点自动修复操作之一。 此错误表示操作 redeploy 无法修复节点。 若要排查节点未就绪问题,请参阅 节点未就绪故障的基本故障排除。
OutboundConnectivityNotEnabledOnVMSS 如果节点或整个虚拟机规模集未启用出站访问,则会发生此错误。 若要解决此问题,请使用最适合应用程序的方法为规模集启用安全的出站访问。 有关详细信息,请参阅 “OutboundConnectivityNotEnabledOnVM”。没有为虚拟机配置的出站连接。”

监视节点自动修复的最佳做法

  • 默认情况下,AKS 会存储过去一小时内的 Kubernetes 事件。 建议启用 Container Insights ,以便最多可以存储 90 天的事件。 还可以 查询事件并配置警报 以快速检测节点自动修复错误。

  • 节点自动修复是一项尽最大努力的服务。 它不能保证节点可以还原到 Ready 状态。 我们建议你主动监视并设置节点未就绪问题的警报,并自行排查和解决这些问题。 有关详细信息,请参阅 节点未就绪问题的基本故障排除。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区