管理網路功能運算子延伸模組
本文會引導進行 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