Azure Operator Service Manager (AOSM) のコンテナー化されたネットワーク機能 (CNF) のデプロイ中に Helm インストールが失敗するトラブルシューティングの手法

CNF は、少数の構成パラメーターを含む単一の Helm パッケージのように単純なものから、数千の構成パラメーターを含む数十の Helm パッケージのように複雑なものまであります。 この記事では、Helm インストールの失敗をデバッグするための一連の一般的なトラブルシューティング手順について説明します。

直接 Helm コマンドを使用して Helm パッケージが正しくインストールされていることを確認する

AOSM は、不適切な Helm チャートまたは正しく構成されていない values.yaml ファイルから構築された CNF をインストールできません。 次の 2 つの基本的な前提条件があります。

  • CNF に含まれるすべての Helm チャートは、チャートのデプロイに使用される値のセットが提供された場合に helm template を渡す必要がある
  • helm install は、Azure Arc に接続された Kubernetes クラスターで直接実行する場合に成功する必要がある

Helm チャートがこれらの前提条件を満たしていることをテストします。 AOSM を介してデプロイするときに使用する予定のものと同じ Helm 値を使用してテストするようにしてください。

  • クラスター接続を使用して Azure Operator Nexus Kubernetes クラスターに接続し、helm install 使用して 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. Microsoft.HybridNetwork/networkFunctionsroleOverrideValues プロパティに次のスニペットが含まれていることを確認します。 このスニペットでは、3 つの独立した Helm チャートから構築された架空の Contoso CNF を使用します。 これらの Helm チャートは、ネットワーク機能定義バージョン (NFDV) の 3 つのネットワーク機能アプリケーションとしてモデル化されています。 ARM テンプレートには、NFDV 内の各ネットワーク機能アプリケーションの roleOverrideValues 配列に 1 つの要素が必要です。
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 portal を使用して SNS デプロイ エラーを表示する

  1. Azure portal にアクセスし、サイト ネットワーク サービス (SNS) をデプロイしたリソース グループを開きます
  2. [リソース グループ] メニューから [デプロイ] ページを選択します
  3. 失敗した SNS デプロイに対応するデプロイの [デプロイ] ページを開き、 [エラーの詳細] ボタンを選択します 失敗したサイト ネットワーク サービスのデプロイに関するエラーの詳細を示すスクリーンショット。

AOSM Azure portal を使用して NF デプロイ エラーを表示する

  1. Azure portal にアクセスし、SNS をデプロイしたリソース グループを開きます
  2. SNS の概要を開き、リソース プロパティへのリンクをクリックします サイト ネットワーク サービスによってデプロイされたホストされているリソース グループを示すスクリーンショット。
  3. [リソース グループ] メニューから [デプロイ] ページを選択します。
  4. 失敗した NF デプロイに対応するデプロイの [エラーの詳細] ボタンを選択します 失敗したネットワーク機能のデプロイに関するエラーの詳細を示すスクリーンショット。

AOSM Azure portal を使用してネットワーク機能のデプロイ パラメーターを表示する

  1. Azure portal にアクセスし、SNS をデプロイしたリソース グループを開きます
  2. SNS の概要を開き、リソース プロパティへのリンクをクリックします サイト ネットワーク サービスによってデプロイされたホストされているリソース グループを示すスクリーンショット。
  3. NF の概要を開き、デプロイ値プロパティの [JSON としてビューを開く] ボタンをクリックします ネットワーク機能のデプロイに渡された値を示すスクリーンショット。

このビューには、NF デプロイ操作に渡された値が表示されます。 これらの値は、NF のデプロイに使用する helm install コマンドに含まれています。 正しく構成されていない、予期しない、欠落している、または不正な形式の値を指定すると、helm install コマンドが失敗する可能性があります。

AOSM Azure portal を使用してネットワーク機能コンポーネントのデプロイ パラメーターを表示する

  1. Azure portal にアクセスし、SNS をデプロイしたリソース グループを開きます
  2. SNS の概要を開き、リソース プロパティへのリンクをクリックします サイト ネットワーク サービスによってデプロイされたホストされているリソース グループを示すスクリーンショット。
  3. NF の概要を開き、リソース メニューから [コンポーネント] ページに移動します。
  4. 目的のコンポーネントの [JSON としてビューを開く] を押します。 helm install コマンドに渡される値を示すスクリーンショット。

このビューには、helm install コマンドで Helm チャートに渡される値が表示されます。 各値は、--set を使用して helm install コマンドに渡されます。 正しく構成されていない、予期しない、欠落している、または不正な形式の値を指定すると、helm install コマンドが失敗する可能性があります。