針對 Kubernetes 應用程式供應專案部署失敗進行疑難解答

本文討論如何針對 Microsoft Azure Marketplace 上接受的 Kubernetes 應用程式供應專案部署失敗進行疑難解答。 當您起始購買 Kubernetes 供應專案時,Azure 會將 Azure Resource Manager 範本部署 (ARM 範本) ,以嘗試安裝必要的資源來滿足供應專案。 不過,ARM 範本部署可能會因為各種原因而失敗。

疑難解答檢查清單

檢查部署作業記錄

若要判斷部署失敗的原因,您必須檢查 部署作業記錄。 如果您仍在檢視 Azure 入口網站 中的 [您的部署失敗] 頁面,請從下列程式的步驟 5 開始。 如果您已結束 Azure 入口網站 或瀏覽至另一個入口網站頁面,請遵循下列所有步驟:

  1. Azure 入口網站 中,搜尋並選取 [資源群組]

  2. 在資源群組清單中,選取您嘗試部署 Kubernetes 應用程式的資源組名。

  3. 在資源群組的 [概觀] 頁面上,找出 [Essentials] 區段,然後選取 [部署] 字段旁邊出現超連結文字。 此文字會顯示資源群組資源部署歷程記錄的成功率 (例如 ,4 個失敗,30 個成功) 。

  4. 在資源群組嘗試部署的清單中,根據下列對應欄位,選取失敗的部署部署 名稱 值:

    • 上次修改 (時間戳)
    • Duration
    • 狀態 (顯示 失敗 ,而不是 成功)
  5. 在部署頁面上的 [部署詳細數據] 清單中,找出 [狀態] 段值為 [衝突] 的 [資源]。 選取該資源的 [作業詳細數據 ] 連結。

    [您的部署失敗] 頁面的螢幕快照,以及失敗 Kubernetes 資源部署的部署詳細數據清單。

  6. 在 [ 作業詳細數據] 窗格中,找出 [ 狀態 ] 屬性 (顯示 [ 衝突) ] 的值,然後檢查屬性下方的 [ 狀態] 消息 框。

    失敗 Kubernetes 資源部署之 [您的部署失敗] 頁面上 [作業詳細數據] 窗格的螢幕快照。

    狀態消息內的 JSON 程式代碼會顯示 statusFailed屬性。 它也會顯示包含 error 錯誤碼名稱 (子屬性的 code 屬性,例如 「ExtensionOperationFailed」) 並 message (錯誤訊息描述,例如「擴充功能作業失敗,發生下列錯誤:無法從指定的值解析延伸模組版本」。) 。 JSON 程式代碼類似下列文字:

    {
        "status": "Failed",
        "error": {
            "code": "ExtensionOperationFailed",
            "message": "The extension operation failed with the following error: Failed to resolve the extension version from the given values."
        }
    }
    

下列各節討論一些常見失敗案例的原因和解決方案。

原因 1:應用程式未安裝在選取的 AKS 叢集上

如果 Kubernetes 應用程式未安裝在選取的 Azure Kubernetes Service (AKS) 叢集上,您會收到類似下列文字的錯誤訊息:

對 subscription-guidhttps://management.azure.com/subscriptions/<>/resourceGroups/resourceGroup/providers/Microsoft.ContainerService/managedclusters/aks-cluster/extensionaddons/default?api-version=2021-03-01 的要求失敗。 錯誤碼:禁止。 原因:禁止。

{  
  "error": {  
    "code": "AuthorizationFailed",  
    "message": "The client '<client-guid>' with object id '<client-guid>' does not have authorization to perform action 'Microsoft.ContainerService/managedclusters/extensionaddons/read' over scope '/subscriptions/<subscription-guid>/resourceGroups/resourceGroup/providers/Microsoft.ContainerService/managedclusters/aks-cluster/extensionaddons/default' or the scope is invalid. If access was recently granted, please refresh your credentials."  
  }  
} 

解決方案 1a:註冊 Microsoft.KubernetesConfiguration 資源提供者

註冊 Microsoft.KubernetesConfiguration 資源提供者。 在此情況下,安裝失敗,因為需要 Microsoft.KubernetesConfiguration 資源提供者,您才能部署 Kubernetes 應用程式。 For registration instructions, see the "Register resource providers" section in the Deploy a container offer from Azure Marketplace article.

解決方案 1b:維護 AKS 叢集的健康情況

一般而言,您應該 檢查 AKS 叢集的健康 情況,以避免在安裝期間發生其他問題。 若要確定叢集狀況良好,請解決叢集上識別的問題。

解決方案1c:檢查 Azure 監視器活動記錄

如果叢集狀況良好,但安裝仍然失敗,該怎麼辦? 在此情況下,請檢查 AKS 叢集內的 Azure 監視器活動記錄 ,以找出安裝階段失敗的原因。

原因 2:訂用帳戶具有資源條件約束

因為您的 Azure 訂用帳戶具有資源條件約束,所以您遇到會產生類似下列文字的錯誤訊息失敗:

針對 OfferId:<'offer-name>'、PlanId '<subscription-plan-name>' 的供應專案,不支援「未知」付款方式 (的) 。

解決方案2:確定您的訂用帳戶符合必要的計費組態

確認訂用帳戶的計費設定,以確定其符合 Kubernetes 應用程式的資源需求。 如需詳細資訊,請 參閱購買驗證檢查

原因 3:供應項目無法在您的區域中使用

您會收到錯誤訊息,指出供應項目無法在特定地理區域中銷售。 錯誤訊息可能類似下列文字:

供應專案:『<offer-name>』 無法由訂用帳戶購買:『<subscription-guid>』,因為它不會在市場中銷售:『<two-letter-region-code』。

解決方案3:重新檢查供應專案是否仍可使用以及供應專案的位置

確認供應專案仍可供使用,並仔細檢查套用供應項目的區域。

原因 4:發生內部伺服器錯誤

Kubernetes 應用程式未安裝,因為未安裝擴充功能資源。 此失敗會產生下列錯誤訊息:

擴充功能無法部署,發生內部伺服器錯誤

解決方案 4:刪除並重新安裝擴充功能

首先,刪除屬於供應項目購買一部分的延伸模組資源。 然後,重新安裝擴充功能。

原因 5:Helm 圖表未安裝

Helm 圖表中的錯誤會產生下列錯誤訊息:

無法從發行路徑 [] 安裝圖表

解決方案 5:重新檢查您在 ARM 範本中所做的專案

請確定您在 ARM 範本部署的 Azure 入口網站 上輸入的值和選取專案可在 Kubernetes 應用程式中接受。

您必須先接受映像的法律條款,才能使用訂用帳戶。 否則,您會收到下列錯誤訊息:

您尚未接受此訂用帳戶的法律條款:此方案的 '<subscription-guid>'。 您必須先接受映像的法律條款,才能使用訂用帳戶。

您可以透過 Azure 入口網站 部署。 Azure 入口網站 提供閱讀和接受法律條款的UI體驗。

後續步驟

針對部署 AKS 叢集擴充功能時的錯誤進行疑難解答

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群