排查常见节点自动修复错误
当 Azure Kubernetes 服务 (AKS) 检测到状态超过 5 分钟的节点NotReady
时,它会尝试自动修复节点。 节点自动修复是一项尽最大努力的服务。 它不保证节点可以还原到正常状态。 有关详细信息,请参阅 节点自动修复过程。
在节点自动修复过程中,AKS 在运行不正常的节点上启动reboot
reimage
和redeploy
操作。 由于各种原因和错误代码,可以通过 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 反馈社区。