針對 K8SAPIServerDNSLookupFailVMExtensionError 錯誤碼 (52) 進行疑難解答
本文討論如何識別及解決K8SAPIServerDNSLookupFailVMExtensionError
錯誤 (也稱為錯誤碼ERR_K8S_API_SERVER_DNS_LOOKUP_FAIL,也就是當您嘗試啟動或建立或部署 Microsoft Azure Kubernetes Service (AKS) 叢集時所發生的錯誤編號 52) 。
必要條件
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\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 community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。