解决 VMExtensionProvisioningTimeout 错误代码问题

本文介绍如何识别和解决VMExtensionProvisioningTimeout尝试创建和部署 Microsoft Azure Kubernetes 服务 (AKS) 群集时发生的错误。

先决条件

  • Azure CLI 版本 2.28.0 或更高版本。 如果已安装 Azure CLI,可以通过运行 az --version找到版本号。

症状

尝试使用 Azure CLI 创建 AKS 群集时,会收到“VMExtensionProvisioningTimeout”错误,如以下示例所示:

Failed to reconcile agent pool agentpool0: err: VMSSAgentPoolReconciler retry failed:
Category: InternalError;
SubCode: VMExtensionProvisioningTimeout;
Dependency: Microsoft.Compute/VirtualMachineScaleSet;
OrginalError:
Code="VMExtensionProvisioningTimeout"
Message="Provisioning of VM extension vmssCSE has timed out. Extension provisioning has taken too long to complete. The extension last reported \"Plugin enabled\".\r\n\r\nMore information on troubleshooting is available at <https://aka.ms/VMExtensionCSELinuxTroubleshoot>";
AKSTeam: NodeProvisioning,
Retriable: true

还可以 在 Azure 门户中查看错误详细信息

原因

多个不同的问题可能会导致“VMExtensionProvisioningError”类错误。 但是,所有问题的故障排除步骤都是相同的。 可能的原因如下:

  • 预配虚拟机(VM)的自定义脚本扩展无法与用于下载 Kubernetes 二进制文件的终结点建立连接。

  • 预配 VM 的自定义脚本扩展无法与用于下载 CNI 二进制文件的终结点建立连接。

  • 预配 VM 的自定义脚本扩展无法建立所需的出站连接来获取包。

  • 群集无法解析必要的域名系统(DNS)地址来正确预配节点。

  • 自定义脚本扩展在为 VM 配置时运行软件包管理更新(例如节点池使用 Linux 时的 apt-get)时达到超时。

解决方案

执行以下步骤:

  1. 如果在群集(如 自定义用户定义的路由)上设置了出口筛选,请参阅“ 限制 Azure Kubernetes 服务(AKS)中的 Azure 防火墙的网络流量和 AKS 群集的出站网络和 FQDN 规则 ,以查看必要的先决条件,并确保设置满足先决条件。

  2. 在 DNS 服务器和防火墙上,确保没有任何东西阻碍群集的完全限定域名(FQDN)的解析。

  3. 由于自定义 DNS 服务器可能配置不正确,因此如果 FQDN 解析继续被阻止,请查看以下文章:

详细信息

联系我们寻求帮助

如果有疑问,可以询问 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区