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