Zarządzanie rozszerzeniem operatora funkcji sieciowej
Ten artykuł zawiera instrukcje dotyczące zarządzania użytkownikami rozszerzenia funkcji sieci programu Azure Operator Service Manager (AOSM). To rozszerzenie klastra kubernetes jest używane w ramach oferty usługi AOSM i służy do zarządzania obciążeniami opartymi na kontenerach hostowanymi przez platformę Azure Operator Nexus.
Omówienie
Te polecenia są wykonywane po dokonaniu klastra NAKS gotowego do rozszerzenia dodatku i zakładają wcześniejsze zainstalowanie interfejsu wiersza polecenia platformy Azure i uwierzytelniania w subskrypcji docelowej.
Tworzenie rozszerzenia funkcji sieciowej
Polecenie interfejsu wiersza polecenia platformy Azure "az k8s-extension create" jest wykonywane w celu zainstalowania rozszerzenia NFO.
Polecenie
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]
Parametry wymagane
--cluster-name -c
- Nazwa klastra Kubernetes.
--cluster-type -t
- Określ klastry usługi Arc lub klastry zarządzane usługi Azure Kubernetes Service (AKS) lub urządzenia arc lub aprowizowaneClusters.
- Zaakceptowane wartości: connectedClusters.
--extension-type
- Nazwa typu rozszerzenia.
- Zaakceptowane wartości: Microsoft.Azure.HybridNetwork.
--name -n
- Nazwa wystąpienia rozszerzenia.
--resource-group -g
- Nazwa grupy zasobów. Grupę domyślną można skonfigurować przy użyciu polecenia "az configure --defaults group=groupname".
--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
- Należy podać tę konfigurację.
Parametry opcjonalne
--auto-upgrade
- Automatycznie uaktualnij wersję pomocniczą wystąpienia rozszerzenia.
- Zaakceptowane wartości: false, true.
- Wartość domyślna: true.
--release-train
- Określ pociąg wydania dla typu rozszerzenia.
- Zaakceptowane wartości: wersja zapoznawcza, stabilna.
- Wartość domyślna: stabilna.
--version
- Określ jawną wersję do zainstalowania dla wystąpienia rozszerzenia, jeśli opcja "--auto-upgrade-minor-version" nie jest włączona.
Opcjonalne konfiguracje specyficzne dla funkcji
Ładowanie bezpośrednie
--config global.networkfunctionextension.enableLocalRegistry=
- Ta konfiguracja umożliwia dostarczanie artefaktów na urządzenia brzegowe za pośrednictwem dysku sprzętowego.
- Zaakceptowane wartości: false, true.
- Wartość domyślna: false
Pod Mutating Webhook
--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=
- Ta konfiguracja jest opcjonalnym parametrem. Wchodzi w grę tylko wtedy, gdy funkcje sieciowe kontenera (CNFs) są instalowane w odpowiedniej przestrzeni nazw wydania.
- Ta konfiguracja umożliwia skonfigurowanie bardziej szczegółowej kontroli na podstawie reguł i przestrzeni nazwWybieracze.
- Wartość domyślna:
"((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\"))))"
Przywoływane dopasowanieCondition oznacza, że zasobniki akceptowane w przestrzeni nazw kube-system sąmutowane tylko wtedy, gdy mają co najmniej jedną z następujących etykiet: app == "commissioning", app == "descheduler" lub name == "cert-exporter". W przeciwnym razie nie są onemutowane i nadal są pobierane z oryginalnego źródła zgodnie z wykresem helm CNF/Component/Application.
- Zaakceptowana wartość: dowolne prawidłowe wyrażenie CEL.
- Ten parametr można ustawić lub zaktualizować podczas instalacji lub aktualizacji rozszerzenia funkcji sieciowej (NF).
- Ten warunek jest odtwarzany tylko wtedy, gdy system plików CNF/Składnik/aplikacja jest instalowany w przestrzeni nazw zgodnie z regułami i przestrzenią nazwWybierania. Jeśli w tej przestrzeni nazw jest coraz więcej zasobników, zostanie zastosowany ten warunek.
Rejestr klastrów
--config global.networkfunctionextension.enableClusterRegistry=
- Ta konfiguracja aprowizuje rejestr w klastrze w celu lokalnego buforowania artefaktów.
- Wartości domyślne włączają tryb ładowania z opóźnieniem, chyba że global.networkfunctionextension.enableEarlyLoading=true.
- Zaakceptowane wartości: false, true.
- Wartość domyślna: false
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=
- Ta konfiguracja aprowizuje rejestr klastrów w trybie wysokiej dostępności, jeśli rejestr klastra jest włączony.
- Wartość domyślna to true i używa nexusa azure kubernetes service (NAKS) współużytkowanego woluminu na zalecenie usługi AKS jest ustawiona wartość false.
- Zaakceptowane wartości: true, false.
- Wartość domyślna: true.
--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled=
- Ta konfiguracja aprowizuje zasobniki rejestru klastra z skalowaniem automatycznym w poziomie.
- Zaakceptowane wartości: true, false.
- Wartość domyślna: true.
--config global.networkfunctionextension.webhook.highAvailability.enabled=
- Ta konfiguracja aprowizuje wiele replik elementu webhook w celu zapewnienia wysokiej dostępności.
- Zaakceptowane wartości: true, false.
- Wartość domyślna: true.
--config global.networkfunctionextension.webhook.autoScaling.enabled=
- Ta konfiguracja aprowizuje zasobniki elementu webhook z skalowaniem automatycznym w poziomie.
- Zaakceptowane wartości: true, false.
- Wartość domyślna: true.
--config global.networkfunctionextension.enableEarlyLoading=
- Ta konfiguracja umożliwia wczesne ładowanie artefaktów do rejestru klastrów przed instalacją lub uaktualnieniem programu Helm.
- Tę konfigurację można włączyć tylko wtedy, gdy global.networkfunctionextension.enableClusterRegistry=true.
- Zaakceptowane wartości: false, true.
- Wartość domyślna: false
--config global.networkfunctionextension.clusterRegistry.storageClassName=
- Tę konfigurację należy podać, gdy global.networkfunctionextension.enableClusterRegistry=true.
- NetworkFunctionExtension aprowizuje element PVC do lokalnych artefaktów pamięci podręcznej z tej klasy magazynu.
- Wartości specyficzne dla platformy
- AKS: managed-csi
- NAKS(Ustawienie domyślne): nexus-shared
- NAKS(Non-HA): nexus-volume
- Azure Stack Edge (ASE): managed-premium
- Wartość domyślna: nexus-shared.
--config global.networkfunctionextension.clusterRegistry.storageSize=
- Tę konfigurację należy podać, gdy global.networkfunctionextension.enableClusterRegistry=true.
- Ta konfiguracja umożliwia skonfigurowanie rozmiaru zarezerwowanego dla rejestru klastrów.
- Ta konfiguracja używa jednostki jako Gi i Ti do określania rozmiaru.
- Wartość domyślna: 100Gi
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=
- Ta konfiguracja musi być podana jako harmonogram w standardowym formacie crontab systemu Unix.
- Ta konfiguracja określona jako pusty ciąg wyłącza zaplanowane zadanie, co pozwala klientom zrezygnować z uruchamiania odzyskiwania pamięci.
- Wartość domyślna: "0 0 * * *" -- Uruchamia zadanie raz dziennie.
--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=
- Ta konfiguracja określa wartość progową precent, aby wyzwolić proces odzyskiwania pamięci rejestru klastra.
- Ta konfiguracja wyzwala proces odzyskiwania pamięci, gdy użycie rejestru klastra przekracza tę wartość.
- Wartość domyślna: 0.
Uwaga
- Podczas zarządzania klastrem NAKS przy użyciu rozwiązania AOSM domyślne wartości parametrów włączają wysoką dostępność jako zalecaną konfigurację.
- Podczas zarządzania klastrem usługi AKS przy użyciu rozwiązania AOSM wysoka dostępność musi być wyłączona przy użyciu następujących opcji konfiguracji:
--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
--config global.networkfunctionextension.webhook.highAvailability.enabled=false
--config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi
Aktualizowanie rozszerzenia funkcji sieciowej
Polecenie interfejsu wiersza polecenia platformy Azure "az k8s-extension update" jest wykonywane w celu zaktualizowania rozszerzenia NFO.
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=]
Usuwanie rozszerzenia funkcji sieciowej
Polecenie interfejsu wiersza polecenia platformy Azure "az k8s-extension delete" jest wykonywane w celu usunięcia rozszerzenia NFO.
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
Przykłady
Utwórz rozszerzenie funkcji sieciowej z automatycznym uaktualnieniem.
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
Utwórz rozszerzenie funkcji sieciowej z przypiętą wersją.
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
Utwórz rozszerzenie funkcji sieciowej z funkcją rejestru klastra (domyślny tryb ładowania z opóźnieniem) włączoną w usłudze 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
Utwórz rozszerzenie funkcji sieciowej z funkcją rejestru klastra (domyślny tryb ładowania z opóźnieniem) włączoną w usłudze 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
Utwórz rozszerzenie funkcji sieciowej z włączoną funkcją rejestru klastra (wczesne ładowanie).
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
Utwórz rozszerzenie funkcji sieciowej z włączoną funkcją ładowania bezpośredniego.
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
Zaktualizuj rozszerzenie funkcji sieciowej, aby włączyć rejestr klastrów.
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
Zaktualizuj rozszerzenie funkcji sieciowej, aby uzyskać dostęp do nowej wersji docelowej.
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