共用方式為


針對 K8SAPIServerDNSLookupFailVMExtensionError 錯誤碼 (52) 進行疑難排解

本文討論如何識別並解決 K8SAPIServerDNSLookupFailVMExtensionError 錯誤(也稱為錯誤碼ERR_K8S_API_SERVER_DNS_LOOKUP_FAIL、錯誤號碼 52),當您嘗試啟動或建立及部署Microsoft Azure Kubernetes Service (AKS) 叢集時所發生的錯誤。

必要條件

徵兆

嘗試啟動或建立 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 至 mcr.microsoft.com 443 埠 [tcp/https]

原因

叢集節點無法解析 Azure DNS 中叢集的完整功能變數名稱 (FQDN)。 在失敗的叢集節點上執行下列 DNS 查閱命令,以尋找有效的 DNS 解析。

節點OS Command
Linux dig <cluster-fqdn>
Windows nslookup <cluster-fqdn>

解決方案

在您的 DNS 伺服器和防火牆上,確定沒有任何專案會封鎖叢集 FQDN 的解析。 如果您在執行 nslookupdig 命令並套用任何必要的修正程序之後,即使發生封鎖,您的自定義 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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。