針對 K8SAPIServerDNSLookupFailVMExtensionError 錯誤碼 (52) 進行疑難排解
本文討論如何識別並解決 K8SAPIServerDNSLookupFailVMExtensionError
錯誤(也稱為錯誤碼ERR_K8S_API_SERVER_DNS_LOOKUP_FAIL、錯誤號碼 52),當您嘗試啟動或建立及部署Microsoft Azure Kubernetes Service (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 至 mcr.microsoft.com 443 埠 [tcp/https]
原因
叢集節點無法解析 Azure DNS 中叢集的完整功能變數名稱 (FQDN)。 在失敗的叢集節點上執行下列 DNS 查閱命令,以尋找有效的 DNS 解析。
節點OS | Command |
---|---|
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 community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。