共用方式為


在 Azure 操作員服務管理員 (AOSM) 容器化網路功能 (CNF) 部署期間針對 Helm 安裝失敗進行疑難解答的技術

CNF 可以像具有少量組態參數的單一 helm 套件一樣簡單,或與具有數千個組態參數的數十個 helm 套件一樣複雜。 本文說明偵錯 Helm 安裝失敗的一系列常見疑難解答步驟。

確認 helm 套件使用直接 helm 命令正確安裝

AOSM 無法安裝 CNF,此 CNF 是從不正確的 Helm 圖表或設定錯誤的檔案所建置 values.yaml 。 有兩個基本必要條件:

  • CNF 中包含的每個 Helm 圖表都必須在提供用來部署圖表的一組值時傳遞helm template
  • helm install 直接在 Azure Arc 連線的 Kubernetes 叢集上執行時必須成功

測試您的 Helm 圖表是否符合這些必要條件。 請務必使用您想要透過 AOSM 部署時使用的相同 helm 值進行測試。

確認您的網路函式 (NF) ARM 樣本已 --atomic 設定為 false

根據預設,AOSM 會從叢集中移除失敗的安裝,以減少資源使用量。 這可防止在失敗案例中進行詳細的偵錯。 NF ARM 範本支援覆寫此行為。 使用此操作說明指南來設定 AOSM 以保留失敗的安裝。

確認您的網路函式 (NF) Azure Resource Manager (ARM) 範本使用成品存放區插入

AOSM 支援對 Helm 圖表進行零接觸上線。 這項功能是在 NF ARM 範本中設定,如果您使用 Az CLI AOSM 擴充功能將 CNF 上線,則會自動啟用此功能。

  1. 從成品存放區下載 NF ARM 範本。
  2. 確認 roleOverrideValuesMicrosoft.HybridNetwork/networkFunctions 屬性包含下列代碼段。 此代碼段使用從三個獨立 Helm 圖表建置的虛構 Contoso CNF。 這些 Helm 圖表會模型化為網路函式定義版本 (NFDV) 中的三個網路函式應用程式。 您的 ARM 範本應該在數位中 roleOverrideValues 針對 NFDV 中的每個網路函式應用程式有一個元素。
roleOverrideValues: ["{\"name\": \"Contoso-one\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}},{\"name\": \"Contoso-two\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}},{\"name\": \"Contoso-three\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}}"]

如果 ARM 範本未包含 \"injectArtifactStoreDetails\":\"true\" 每個網路函式應用程式的設定,請編輯 ARM 範本,以在 NFDV 中包含每個網路函式應用程式的設定,並將 ARM 範本上傳至成品存放區。

使用 AOSM Azure 入口網站 檢視 SNS 部署錯誤

  1. 存取 Azure 入口網站,然後開啟您部署網站網路服務的資源群組 (SNS)
  2. 從 [資源群組] 功能選取 [ 部署] 頁面
  3. 開啟對應至失敗 SNS 部署之部署的部署頁面,然後選取 [錯誤詳細數據 ] 按鈕 顯示失敗網站網路服務部署錯誤詳細數據的螢幕快照。

使用 AOSM Azure 入口網站 檢視 NF 部署錯誤

  1. 存取 Azure 入口網站,然後開啟您部署 SNS 的資源群組
  2. 開啟SNS概觀,然後按兩下Resources屬性的連結此螢幕快照顯示網站網路服務所部署的託管資源群組。
  3. 從 [資源群組] 功能選取 [ 部署] 頁面。
  4. 選取 對應至失敗 NF 部署之部署的錯誤詳細 數據按鈕 顯示失敗網路函式部署錯誤詳細數據的螢幕快照。

使用 AOSM Azure 入口網站 來檢視網路函式部署參數

  1. 存取 Azure 入口網站,然後開啟您部署 SNS 的資源群組
  2. 開啟SNS概觀,然後按兩下Resources屬性的連結此螢幕快照顯示網站網路服務所部署的託管資源群組。
  3. 開啟 NF 概觀,然後按兩下 [部署值] 屬性的 [開啟檢視為 JSON] 按鈕此螢幕快照顯示傳遞至網路函式部署的值。

此檢視會顯示已傳遞至 NF 部署作業的值。 這些值包含在用來部署 NF 的命令中 helm install 。 設定錯誤、非預期、遺失或格式不正確的值可能會導致 helm install 命令失敗。

使用 AOSM Azure 入口網站 檢視網路函式元件部署參數

  1. 存取 Azure 入口網站,然後開啟您部署 SNS 的資源群組
  2. 開啟SNS概觀,然後按兩下Resources屬性的連結此螢幕快照顯示網站網路服務所部署的託管資源群組。
  3. 開啟 NF 概觀,然後從資源功能表流覽至 [元件 ] 頁面。
  4. 針對感興趣的元件,按 [開啟檢視] 作為 JSON顯示傳遞至 helm 安裝命令之值的螢幕快照。

此檢視會顯示傳遞至命令上 helm install helm 圖表的值。 每個值都會使用 --set傳遞至 helm install 命令。 設定錯誤、非預期、遺失或格式不正確的值可能會導致 helm install 命令失敗。