共用方式為


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

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

疑難排解檢查清單

檢查部署作業記錄

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

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

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

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

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

    • 上次修改 過 (時間戳)
    • 期間
    • 狀態 (顯示 失敗 而非 成功
  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) 叢集上,您會收到類似下列文字的錯誤訊息:

要求無法訂閱 https://management.azure.com/subscriptions/<-guid>/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 應用程式。 如需註冊指示,請參閱從 Azure Marketplace 部署容器供應專案的<註冊資源提供者>一節

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

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

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

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

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

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

供應專案不支援 「未知」付款方式:'<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 意見反應社群提交產品意見反應。