Udostępnij za pośrednictwem


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