排查 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 反馈社区