次の方法で共有


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