排查 K8SAPIServerDNSLookupFailVMExtensionError 错误代码 (52)
本文讨论如何识别和解决K8SAPIServerDNSLookupFailVMExtensionError
在尝试启动或部署 Microsoft Azure Kubernetes 服务 (AKS) 群集时出现的错误 (也称为错误代码ERR_K8S_API_SERVER_DNS_LOOKUP_FAIL错误号 52) 。
先决条件
适用于 Windows 节点 的 nslookup DNS 查找工具或 Linux 节点的 dig 工具。
Azure CLI 版本 2.0.59 或更高版本。 如果已安装 Azure CLI,可以通过运行
az --version
来查找版本号。
症状
尝试启动或创建 AKS 群集时,会收到以下错误消息:
代理无法解析 Kubernetes API 服务器名称。 自定义 DNS 服务器可能配置不正确,有关详细信息,请参阅 https://aka.ms/aks/private-cluster#hub-and-spoke-with-custom-dns 。
详细信息:Code=“VMExtensionProvisioningError”
Message=“VM 在处理扩展'vmssCSE'时报告失败。
错误消息:“启用失败:无法执行命令:命令已终止,退出状态为 52\n[stdout]\n{
“ExitCode”: “52”,
“Output”:“星期五 Oct 15 10:06:00 UTC 2021,aks- nodepool1-36696444-vmss000000\n连接到 mcr.microsoft.com 443 端口 [tcp/https]
原因
群集节点无法在 Azure DNS 中解析群集的完全限定域名 (FQDN) 。 在失败的群集节点上运行以下 DNS 查找命令,查找有效的 DNS 解析。
节点 OS | 命令 |
---|---|
Linux | dig <cluster-fqdn> |
Windows | nslookup <cluster-fqdn> |
解决方案
在 DNS 服务器和防火墙上,请确保没有任何内容阻止群集 FQDN 的解析。 如果在运行 nslookup
或 dig
命令并应用任何必要的修补程序后发生阻塞,则自定义 DNS 服务器配置可能不正确。 有关配置自定义 DNS 服务器的帮助,请查看以下文章:
使用具有自定义 DNS 的专用群集时,将创建 DNS 区域。 DNS 区域必须链接到虚拟网络。 创建群集后会发生这种情况。 创建具有自定义 DNS 的专用群集在创建过程中失败。 但是,可以通过协调群集将创建过程还原到“成功”状态。 为此,请在 Azure CLI 中运行 az resource update 命令,如下所示:
az resource update --resource-group <resource-group-name> \
--name <cluster-name> \
--namespace Microsoft.ContainerService \
--resource-type ManagedClusters
此外,请验证是否已为专用群集正确配置 DNS 服务器,如前所述。
注意
条件转发不支持子域。
更多信息
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。