共用方式為


管理網路功能運算子延伸模組

本文會引導進行 Azure 運算子服務管理員 (AOSM) 網路功能運算子 (NFO) 延伸模組的使用者管理。 此 Kubernetes 叢集延伸模組是 AOSM 服務供應項目的一部分,且用來管理 Azure 運算子連接點平台所裝載的容器型工作負載。

概觀

這些命令會在讓 NAKS 叢集準備好供附加元件延伸模組使用之後執行,並假設在安裝 Azure CLI 之前,以及在目標訂用帳戶中驗證。

建立網路功能延伸模組

執行 Azure CLI 命令 'az k8s-extension create' 以安裝 NFO 延伸模組。

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。

Pod 變動 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 意指只有在 Pod 至少有下列其中一個卷標時,才會變更在 kube-system 命名空間中接受的 Pod:app == “commissioning”、app == “descheduler”,或 name == “cert-exporter”。否則,它們不會變動,且會根據 CNF/Component/Application 的 Helm 圖表,繼續從原始來源提取。

  • 接受的值:任何有效的 CEL 運算式。
  • 此參數可以在網路功能 (NF) 延伸模組安裝或更新期間設定或更新。
  • 只有在 CNF/Component/Application 根據規則和 namespaceSelectors 安裝到命名空間時,才會發生此情況。 如果命名空間中有更多 Pod 正在啟動,則會套用此條件。

叢集登錄

--config global.networkfunctionextension.enableClusterRegistry=

  • 此組態會將叢集中的登錄佈建到本機快取成品。
  • 預設值會啟用消極式載入模式,除非 global.networkfunctionextension.enableEarlyLoading=true。
  • 接受的值:false、true。
  • 預設值:false。

--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=

  • 如果已啟用叢集登錄,此組態會以高可用性模式佈建叢集登錄。
  • 預設值為 true,且在 AKS 建議設定為 false 時,使用連接點 Azure Kubernetes Service (NAKS) 連接點共用磁碟區。
  • 接受的值:true、false。
  • 預設值:true。

--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=

  • 此設定會佈建具有水平自動調整的叢集登錄 Pod。
  • 接受的值:true、false。
  • 預設值:true。

--config global.networkfunctionextension.webhook.highAvailability.enabled=

  • 此組態會佈建多個 Webhook 複本以提供高可用性。
  • 接受的值:true、false。
  • 預設值:true。

--config global.networkfunctionextension.webhook.autoScaling.enabled=

  • 此組態會佈建具有水平自動調整的 Webhook Pod。
  • 接受的值: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 受控 CSI
    • NAKS(預設值):nexus-shared
    • NAKS(非高可用性):nexus-volume
    • Azure Stack Edge (ASE):受控進階
  • 預設值:nexus-shared。

--config global.networkfunctionextension.clusterRegistry.storageSize=

  • 當 global.networkfunctionextension.enableClusterRegistry=true 時,必須提供此組態。
  • 此組態會設定我們為叢集登錄保留的大小。
  • 此組態會將 Gi 和 Ti 用作重設大小的單位。
  • 預設值:100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • 此組態必須以標準 Unix crontab 格式的排程形式提供。
  • 這個指定為空字串的組態會停用排程工作,讓客戶退出退出執行垃圾收集。
  • 預設值:“0 0 * * *” -- 每天執行作業一次。

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=

  • 此組態會指定觸發叢集登錄垃圾收集程序的預先臨界值。
  • 當叢集登錄使用量超過此值時,此組態會觸發垃圾收集程式。
  • 預設值:0.

注意

  • 使用 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

更新網路功能延伸模組

執行 Azure CLI 命令 'az k8s-extension update' 來更新 NFO 延伸模組。

刪除網路功能延伸模組

執行 Azure CLI 命令 'az k8s-extension delete' 以刪除 NFO 延伸模組。

範例

建立具有自動升級的網路功能延伸模組。

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