排查 K8SAPIServerDNSLookupFailVMExtensionError 错误代码 (52) 的问题
本文讨论如何识别和解决K8SAPIServerDNSLookupFailVMExtensionError
错误(也称为错误代码ERR_K8S_API_SERVER_DNS_LOOKUP_FAIL、错误号 52)(尝试启动或创建和部署Microsoft Azure Kubernetes 服务(AKS)群集时发生的错误。
先决条件
适用于 Windows 节点的 nslookup DNS 查找工具或适用于 Linux 节点的挖掘工具。
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”: “Fri Oct 15 10:06:00 UTC 2021,aks- nodepool1-36696444-vmss000000\nConnection to 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 反馈社区。