Network Function Operator 拡張機能を管理する
この記事では、Azure Operator Service Manager (AOSM) の Network Function Operator (NFO) 拡張機能のユーザー管理について説明します。 この Kubernetes クラスター拡張機能は、AOSM サービス オファリングの一部として使用され、Azure Operator Nexus プラットフォームによってホストされるコンテナー ベースのワークロードを管理するために使用されます。
概要
これらのコマンドは、NAKS クラスターをアドオン拡張機能用に準備した後に実行され、Azure CLI のインストールとターゲット サブスクリプションへの認証が済んでいるものとします。
ネットワーク機能拡張機能を作成する
NFO 拡張機能をインストールするには、Azure CLI コマンド 'az k8s-extension create' を実行します。
command
az k8s-extension create --cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--resource-group
--scope {cluster}
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
[--auto-upgrade {false, true}]
[--config global.networkfunctionextension.enableClusterRegistry={false, true}]
[--config global.networkfunctionextension.enableLocalRegistry={false, true}]
[--config global.networkfunctionextension.enableEarlyLoading={false,true}]
[--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.storageClassName=]
[--config global.networkfunctionextension.clusterRegistry.storageSize=]
[--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
[--version]
必須パラメーター
--cluster-name -c
- Kubernetes クラスターの名前。
--cluster-type -t
- Arc クラスター、Azure Kubernetes Service (AKS) マネージド クラスター、Arc アプライアンス、または provisionedClusters を指定します。
- 使用できる値: connectedClusters。
--extension-type
- 拡張機能の種類の名前。
- 使用できる値: Microsoft.Azure.HybridNetwork。
--name -n
- 拡張機能インスタンスの名前。
--resource-group -g
- リソース グループの名前。 'az configure --defaults group=groupname' を使用して、既定のグループを構成できます。
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
- この構成を指定する必要があります。
オプションのパラメーター
--auto-upgrade
- 拡張機能インスタンスのマイナー バージョンを自動的にアップグレードします。
- 使用できる値: false、true。
- 既定値: True。
--release-train
- 拡張機能の種類のリリース トレインを指定します。
- 使用できる値: preview、stable。
- 既定値: stable。
--version
- '--auto-upgrade-minor-version' が有効になっていない場合は、拡張機能インスタンスにインストールする明示的なバージョンを指定します。
省略可能な機能固有の構成
サイド ローディング
--config global.networkfunctionextension.enableLocalRegistry=
- この構成により、成果物をハードウェア ドライブ経由でエッジに配信できるようになります。
- 使用できる値: false、true。
- 既定値: false
ポッドの変更 Webhook
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
- この構成はオプション パラメーターです。 これが機能するのは、対応するリリースの名前空間にコンテナー ネットワーク機能 (CNF) がインストールされている場合のみです。
- この構成では、規則と namespaceSelectors に基づいて、より詳細な制御を構成します。
- 既定値:
"((object.metadata.namespace != \"kube-system\") || (object.metadata.namespace == \"kube-system\" && has(object.metadata.labels) && (has(object.metadata.labels.app) && (object.metadata.labels.app == \"commissioning\") || (has(object.metadata.labels.name) && object.metadata.labels.name == \"cert-exporter\") || (has(object.metadata.labels.app) && object.metadata.labels.app == \"descheduler\"))))"
参照されている matchCondition は、kube-system 名前空間で受け入れられるポッドが、次のラベルの少なくとも 1 つを持つ場合にのみ変更されることを意味します: app == "commissioning"、app == "descheduler"、または name == "cert-exporter"。それ以外の場合、これらは変更されず、CNF/コンポーネント/アプリケーションの Helm Chart に従って元のソースから引き続きプルされます。
- 使用できる値: 任意の有効な CEL 式。
- このパラメーターは、ネットワーク機能 (NF) 拡張機能のインストール時または更新時に設定または更新できます。
- この条件に該当するのは、CNF/コンポーネント/アプリケーションが規則と namespaceSelectors に従って名前空間にインストールされる場合のみです。 その名前空間で起動するポッドがさらに増えると、この条件が適用されます。
クラスター レジストリ
--config global.networkfunctionextension.enableClusterRegistry=
- この構成では、成果物をローカル環境にキャッシュするためにクラスター内にレジストリがプロビジョニングされます。
- global.networkfunctionextension.enableEarlyLoading=true でない限り、既定値では遅延読み込みモードが有効になります。
- 使用できる値: false、true。
- 既定値: false
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- この構成では、クラスター レジストリが有効な場合、クラスター レジストリが高可用性モードでプロビジョニングされます。
- 既定値は true であり、AKS 上の Nexus Azure Kubernetes Service (NAKS) nexus-shared ボリュームが使用されます。推奨の設定は false です。
- 使用できる値: true、false。
- 既定値: True。
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- この構成では、水平自動スケーリングを使ってクラスター レジストリ ポッドがプロビジョニングされます。
- 使用できる値: true、false。
- 既定値: True。
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- この構成では、高可用性のために Webhook の複数のレプリカがプロビジョニングされます。
- 使用できる値: true、false。
- 既定値: True。
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- この構成では、水平自動スケーリングを使って Webhook ポッドがプロビジョニングされます。
- 使用できる値: true、false。
- 既定値: True。
--config global.networkfunctionextension.enableEarlyLoading=
- この構成では、Helm のインストールまたはアップグレードの前に、成果物をクラスター レジストリに早期に読み込むことができます。
- この構成は、global.networkfunctionextension.enableClusterRegistry=true の場合にのみ有効にできます。
- 使用できる値: false、true。
- 既定値: false
--config global.networkfunctionextension.clusterRegistry.storageClassName=
- この構成は、global.networkfunctionextension.enableClusterRegistry=true の場合に指定する必要があります。
- NetworkFunctionExtension では、このストレージ クラスからの成果物をローカル環境にキャッシュするために PVC がプロビジョニングされます。
- プラットフォーム固有の値
- AKS: managed-csi
- NAKS (既定値): nexus-shared
- NAKS (非 HA): nexus-volume
- Azure Stack Edge (ASE): managed-premium
- 既定値: nexus-shared。
--config global.networkfunctionextension.clusterRegistry.storageSize=
- この構成は、global.networkfunctionextension.enableClusterRegistry=true の場合に指定する必要があります。
- この構成では、クラスター レジストリ用に予約するサイズを構成します。
- この構成では、サイズ設定の単位として Gi と Ti を使います。
- 既定値: 100 Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- この構成は、標準の Unix crontab 形式のスケジュールとして提供する必要があります。
- この構成を空の文字列として指定すると、スケジュールされたジョブは無効になり、お客様はガベージ コレクションの実行をオプトアウトできます。
- 既定値: "0 0 * * *" -- ジョブを毎日 1 回実行します。
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- この構成は、クラスター レジストリのガベージ コレクション プロセスをトリガーするパーセントしきい値を指定します。
- この構成では、クラスター レジストリの使用量がこの値を超えると、ガベージ コレクション プロセスがトリガーされます。
- 既定値:0。
Note
- AOSM を使って NAKS クラスターを管理すると、既定のパラメーター値では、推奨される構成として HA が有効になります。
- AOSM を使って AKS クラスターを管理するときは、次の構成オプションを使って HA を無効にする必要があります。
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
--config global.networkfunctionextension.webhook.highAvailability.enabled=false
--config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi
ネットワーク機能拡張機能を更新する
NFO 拡張機能を更新するには、Azure CLI コマンド 'az k8s-extension update' を実行します。
az k8s-extension update --resource-group
--cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
[--version] {version-target}
[--config global.networkfunctionextension.enableClusterRegistry={false, true}]
[--config global.networkfunctionextension.enableLocalRegistry={false, true}]
[--config global.networkfunctionextension.enableEarlyLoading={false,true}]
[--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
[--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
[--config global.networkfunctionextension.clusterRegistry.storageClassName=]
[--config global.networkfunctionextension.clusterRegistry.storageSize=]
[--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
[--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
ネットワーク機能拡張機能を削除する
NFO 拡張機能を削除するには、Azure CLI コマンド 'az k8s-extension delete' を実行します。
az k8s-extension delete --resource-group
--cluster-name
--cluster-type {connectedClusters}
--extension-type {Microsoft.Azure.HybridNetwork}
--name
--release-namespace {azurehybridnetwork}
--release-train {preview, stable}
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
例
自動アップグレードを使ってネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork
特定のバージョンを使用してネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --auto-upgrade-minor-version false --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --version 1.0.2711-7
NAKS でクラスター レジストリ (既定の遅延読み込みモード) 機能を有効にしてネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
AKS でクラスター レジストリ (既定の遅延読み込みモード) 機能を有効にしてネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
クラスター レジストリ (早期読み込み) 機能を有効にしてネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableClusterRegistry=true --config global.networkfunctionextension.enableEarlyLoading=true --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi --config global.networkfunctionextension.clusterRegistry.storageSize=100Gi
サイド ロード機能を有効にしてネットワーク機能拡張機能を作成します。
az k8s-extension create --resource-group myresourcegroup --cluster-name mycluster --name myextension --cluster-type connectedClusters --extension-type Microsoft.Azure.HybridNetwork --scope cluster --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator --release-namespace azurehybridnetwork --config global.networkfunctionextension.enableLocalRegistry=true
クラスター レジストリを有効にするように Network Function 拡張機能を更新します。
az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1 --cluster-type connectedClusters --name networkfunction-operator --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --config networkFunctionExtension.EnableManagedInClusterEdgeRegistry=true –-config networkFunctionExtension.EdgeRegistrySizeInGB=1024
新しいターゲット バージョンに到達するように Network Function 拡張機能を更新します。
az k8s-extension update --resource-group naks-1-rg --cluster-name naks-1 --cluster-type connectedClusters --name networkfunction-operator --extension-type Microsoft.Azure.HybridNetwork --release-namespace azurehybridnetwork --version X.X.XXXX-YYY