クイックスタート: コンテナー化ネットワーク機能 (CNF) として Nginx コンテナーを公開する
このクイック スタートでは、az aosm
Azure CLI 拡張機能を使用して、基本的なネットワーク機能定義を作成して公開する方法について説明します。 その目的は、Publisher Azure Operator Service Manager (AOSM) リソースのワークフローを示すことです。 ここで説明する基本的な概念は、ユーザーがより優れたサービスを構築するための準備を目的としています。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウントが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に、こちらの「無料で始める」の手順に従ってアカウントを作成してください。
リソース グループを作成するためのこのサブスクリプションに対する共同作成者ロールと AcrPush ロール、または共同作成者ロールを持つ既存のリソース グループ。
「クイック スタート: Azure Operator Service Manager にコンテナー化ワーク機能をデプロイするための前提条件を満たす」を済ませます。
入力ファイルを作成する
ネットワーク機能定義を公開するための入力ファイルを作成します。 次のコマンドを実行して、ネットワーク機能定義 (NFD) の入力構成ファイルを生成します。
az aosm nfd generate-config --definition-type cnf
上記のコマンドを実行すると、input.json ファイルが生成されます。
Note
input. json ファイルを編集します。 次の例に示す値に置き換えます。 input-cnf-nfd.json としてファイルを保存します。
Note
このクイックスタートでは、source_local_docker_image を使用します。 今後作成する可能性のある CNF については、CNF のイメージを含む既存の Azure Container Registry への参照を使用するオプションがあります。 現在、CNF ごとにサポートされる ACR と名前空間は 1 つだけです。 この ACR からコピーされるイメージは、helm パッケージのスキーマに基づいて自動的に設定されます。 今後このオプションを使用するには、source_registry
を入力し、必要に応じて input.json ファイルに source_registry_namespace
を設定します。 この ACR に対する閲覧者/AcrPull アクセス許可が必要です。
input-cnf-nfd.json ファイルのサンプルを次に示します。
{
"publisher_name": "nginx-publisher",
"publisher_resource_group_name": "nginx-publisher-rg",
"nf_name": "nginx",
"version": "1.0.0",
"acr_artifact_store_name": "nginx-nsd-acr",
"location": "uksouth",
"images": {
"source_local_docker_image": "nginx:stable"
},
"helm_packages": [
{
"name": "nginxdemo",
"path_to_chart": "nginxdemo-0.1.0.tgz",
"path_to_mappings": "",
"depends_on": []
}
]
}
- publisher_name - 定義の公開先となる Publisher リソースの名前。 まだ存在していない場合は作成されます。
- publisher_resource_group_name - Publisher リソースのリソース グループ。 まだ存在していない場合は作成されます。
- acr_artifact_store_name - ACR 成果物ストア リソースの名前。 まだ存在していない場合は作成されます。
- location - リソースの作成時に使用する Azure の場所。
- nf_name - NF 定義の名前。
- version - A.B.C 形式の NF 定義のバージョン。
- images:
- source_local_docker_image - 省略可能。 ローカル コンピューターからのソース docker イメージのイメージ名。 CNF がローカル docker リポジトリに存在する単一の docker イメージのみを必要とする限られたユース ケースが対象となります。
- helm_packages:
- name - Helm パッケージの名前。
- path_to_chart - ローカル ディスク上の Helm chart のファイル パス。 .tgz、.tar、または .tar.gz を受け入れます。 Windows で実行する場合でも、Linux スラッシュ (/) のファイル区切り記号を使用します。 このパスは、絶対パス、または
input.json
ファイルの場所を基準とした相対パスにする必要があります。 - path_to_mappings - 選択した値が deploymentParameter プレースホルダーに置き換えられるローカル ディスク上の値のマッピングのファイル パス (絶対または
input.json
に対する相対パス)。 .yaml または .yml を受け入れます。 空白の文字列として残された場合は、デプロイ パラメーターにマップされるすべての値について値のマッピング ファイルが生成されます。 マップする値を対話形式で選択するには、ビルド コマンドで空の文字列と--interactive
を使用します。 - depends_on - このパッケージが依存する Helm パッケージの名前。 依存関係がない場合は、空の配列のままにします。
ネットワーク機能定義 (NFD) をビルドする
ネットワーク機能定義 (NFD) を構築するには、対話型モードでビルド プロセスを開始します。 このモードでは、values.yaml
の値を deploymentParameters として選択的に公開できます。
az aosm nfd build -f input-cnf-nfd.json --definition-type cnf --interactive
この対話型プロセス中は、次の 2 つを除くすべてのオプションに対して 'n' (いいえ) で応答できます。
- パラメーター
serviceAccount_create
を公開するために、'y' (はい) で応答します - パラメーター
service_port
を公開するために、'y' (はい) で応答します
ビルドが完了したら、生成されたファイルを調べて、ネットワーク機能定義 (NFD) 構造について理解を深めます。 次のファイルが作成されます。
ディレクトリ/ファイル | 説明 |
---|---|
configMappings | ネットワーク機能定義バージョン (NFDV) のデプロイ パラメーターを、Helm chart に必要な値にマップします。 |
generatedValuesMappings | configMappings を作成した対話型モードの yaml 出力。 必要に応じて編集して再実行します。 |
スキーマ | このネットワーク機能定義バージョン (NFDV) からネットワーク機能 (NF) を作成するために必要なデプロイ パラメーターを定義します。 |
cnfartifactmanifests.bicep | 成果物マニフェストを作成するための Bicep テンプレート。 |
cnfdefinition.bicep | ネットワーク機能定義バージョン (NFDV) 自体を作成するための Bicep テンプレート。 |
対話型の選択中にエラーが発生した場合は、次の 2 つの方法で修正できます。
- 正しい選択でコマンドを再実行する。
generatedValuesMappings
フォルダー内に生成された値のマッピングを手動で調整する。 その後、input.json
のpath_to_mappings_file
を編集して、変更されたファイル パスを参照します。
ネットワーク機能定義を公開して成果物をアップロードする
ネットワーク機能定義 (NFD) を公開して関連する成果物をアップロードするには、次のコマンドを実行します。
az aosm nfd publish -f input-cnf-nfd.json --definition-type cnf
コマンドが完了したら、Publisher リソース グループ内のリソースを調べて、作成されたコンポーネントと成果物を確認します。