Delen via


Extensie van netwerkfunctieoperator beheren

In dit artikel wordt het gebruikersbeheer van de NFO-extensie (Azure Operator Service Manager) van de netwerkfunctieoperator (AOSM) begeleid. Deze kubernetes-clusterextensie wordt gebruikt als onderdeel van het AOSM-serviceaanbod en wordt gebruikt voor het beheren van workloads op basis van containers, gehost door het Azure Operator Nexus-platform.

Overzicht

Deze opdrachten worden uitgevoerd nadat u het NAKS-cluster gereed hebt gemaakt voor de uitbreiding voor de invoegtoepassing en ervan uitgaat dat de Azure CLI en verificatie eerder zijn geïnstalleerd in het doelabonnement.

Netwerkfunctie-extensie maken

De Azure CLI-opdracht az k8s-extension create wordt uitgevoerd om de NFO-extensie te installeren.

Opdracht

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]

Vereiste parameters

--cluster-name -c

  • Naam van het Kubernetes-cluster.

--cluster-type -t

  • Geef Arc-clusters of door Azure Kubernetes Service (AKS) beheerde clusters of Arc-apparaten of provisionedClusters op.
  • Geaccepteerde waarden: connectedClusters.

--extension-type

  • Naam van het extensietype.
  • Geaccepteerde waarden: Microsoft.Azure.HybridNetwork.

--name -n

  • Naam van het extensie-exemplaar.

--resource-group -g

  • De naam van de resourcegroep. U kunt de standaardgroep configureren met az configure --defaults group=groupname.

--config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator

  • Deze configuratie moet worden opgegeven.

Optionele parameters

--auto-upgrade

  • Automatisch een secundaire versie van het extensie-exemplaar bijwerken.
  • Geaccepteerde waarden: onwaar, waar.
  • Standaardwaarde: true.

--release-train

  • Geef de releasetrein op voor het extensietype.
  • Geaccepteerde waarden: preview, stabiel.
  • Standaardwaarde: stabiel.

--version

  • Geef de expliciete versie op die moet worden geïnstalleerd voor het extensie-exemplaar als '-auto-upgrade-minor-version' niet is ingeschakeld.

Optionele functiespecifieke configuraties

SideLoading

--config global.networkfunctionextension.enableLocalRegistry=

  • Met deze configuratie kunnen artefacten via een hardwarestation aan de rand worden geleverd.
  • Geaccepteerde waarden: onwaar, waar.
  • Standaardwaarde: false.

Pod Mutating Webhook

--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=

  • Deze configuratie is een optionele parameter. Het wordt alleen afgespeeld wanneer containernetwerkfuncties (CNF's) zijn geïnstalleerd in de bijbehorende releasenaamruimte.
  • Met deze configuratie configureert u gedetailleerder beheer boven op regels en namespaceSelectors.
  • Standaardwaarde:
    "((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\"))))"
    

De verwijzing naar matchCondition impliceert dat de pods die worden geaccepteerd in kube-system-naamruimte alleen worden gemuteerd als ze ten minste een van de volgende labels hebben: app == "commissioning", app == "descheduler" of name == "cert-exporter.". Anders worden ze niet gedempt en blijven ze opgehaald uit de oorspronkelijke bron volgens de helmgrafiek van CNF/Component/Application.

  • Geaccepteerde waarde: elke geldige CEL-expressie.
  • Deze parameter kan worden ingesteld of bijgewerkt tijdens de installatie of update van de NF-extensie (network function).
  • Deze voorwaarde wordt alleen afgespeeld wanneer de CNF/Component/Application wordt geïnstalleerd in de naamruimte volgens de regels en naamruimteSelectors. Als er meer pods worden uitgevoerd in die naamruimte, wordt deze voorwaarde toegepast.

Clusterregister

--config global.networkfunctionextension.enableClusterRegistry=

  • Met deze configuratie wordt een register in het cluster geconfigureerd voor het lokaal opslaan van artefacten in de cache.
  • Standaardwaarden schakelen de luie laadmodus in, tenzij global.networkfunctionextension.enableEarlyLoading=true.
  • Geaccepteerde waarden: onwaar, waar.
  • Standaardwaarde: false.

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

  • Met deze configuratie wordt het clusterregister ingericht in de modus voor hoge beschikbaarheid als het clusterregister is ingeschakeld.
  • De standaardwaarde is waar en gebruikt Nexus Azure Kubernetes Service (NAKS) nexus-shared volume op AKS-aanbeveling is ingesteld op false.
  • Geaccepteerde waarden: waar, onwaar.
  • Standaardwaarde: true.

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

  • Met deze configuratie worden de clusterregisterpods voorzien van horizontaal automatisch schalen.
  • Geaccepteerde waarden: waar, onwaar.
  • Standaardwaarde: true.

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

  • Met deze configuratie worden meerdere replica's van webhook ingericht voor hoge beschikbaarheid.
  • Geaccepteerde waarden: waar, onwaar.
  • Standaardwaarde: true.

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

  • Deze configuratie richt de webhookpods in met horizontaal automatisch schalen.
  • Geaccepteerde waarden: waar, onwaar.
  • Standaardwaarde: true.

--config global.networkfunctionextension.enableEarlyLoading=

  • Met deze configuratie kunnen artefacten vroeg in het clusterregister worden geladen voordat helm-installatie of -upgrade wordt uitgevoerd.
  • Deze configuratie kan alleen worden ingeschakeld wanneer global.networkfunctionextension.enableClusterRegistry=true.
  • Geaccepteerde waarden: onwaar, waar.
  • Standaardwaarde: false.

--config global.networkfunctionextension.clusterRegistry.storageClassName=

  • Deze configuratie moet worden opgegeven wanneer global.networkfunctionextension.enableClusterRegistry=true.
  • NetworkFunctionExtension richt een PVC in op lokale cacheartefacten uit deze opslagklasse.
  • Platformspecifieke waarden
    • AKS: managed-csi
    • NAKS(standaard): nexus gedeeld
    • NAKS (niet-HA): nexus-volume
    • Azure Stack Edge (ASE): managed-premium
  • Standaardwaarde: nexus-shared.

--config global.networkfunctionextension.clusterRegistry.storageSize=

  • Deze configuratie moet worden opgegeven wanneer global.networkfunctionextension.enableClusterRegistry=true.
  • Met deze configuratie configureert u de grootte die we reserveren voor het clusterregister.
  • Deze configuratie maakt gebruik van eenheid als Gi en Ti voor het aanpassen van de grootte.
  • Standaardwaarde: 100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • Deze configuratie moet worden opgegeven als een schema in standaard Unix crontab-indeling.
  • Deze configuratie die is opgegeven als een lege tekenreeks, schakelt de geplande taak uit, zodat klanten zich kunnen afmelden voor het uitvoeren van garbagecollection.
  • Standaardwaarde: "0 0 * * *" -- Voert de taak eenmaal per dag uit.

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=

  • Met deze configuratie geeft u de drempelwaarde voor de precente drempelwaarde op om het clusterregister garbagecollectionproces te activeren.
  • Deze configuratie activeert het garbagecollectionproces wanneer het clusterregistergebruik deze waarde overschrijdt.
  • Standaardwaarde: 0.

Notitie

  • Bij het beheren van een NAKS-cluster met AOSM schakelen de standaardparameterwaarden hoge beschikbaarheid in als aanbevolen configuratie.
  • Bij het beheren van een AKS-cluster met AOSM moet ha worden uitgeschakeld met behulp van de volgende configuratieopties:
   --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
   --config global.networkfunctionextension.webhook.highAvailability.enabled=false
   --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi

Netwerkfunctie-extensie bijwerken

De Azure CLI-opdracht az k8s-extension update wordt uitgevoerd om de NFO-extensie bij te werken.

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=]

Netwerkfunctie-extensie verwijderen

De Azure CLI-opdracht az k8s-extension delete wordt uitgevoerd om de NFO-extensie te verwijderen.

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

Voorbeelden

Maak een netwerkfunctieextensie met automatische upgrade.

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

Maak een netwerkfunctieextensie met een vastgemaakte versie.

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

Maak een netwerkfunctieextensie met de functie clusterregister (standaard luie laadmodus) ingeschakeld op 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

Maak een netwerkfunctieextensie met de functie clusterregister (standaard luie laadmodus) ingeschakeld op 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

Maak een netwerkfunctieextensie waarvoor de functie clusterregister (vroegtijdig laden) is ingeschakeld.

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

Maak een netwerkfunctieextensie waarvoor sideloadfunctie is ingeschakeld.

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

Werk een netwerkfunctieextensie bij om het clusterregister in te schakelen.

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

Werk een netwerkfunctieextensie bij om een nieuwe doelversie te bereiken.

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