Hantera ett NFO-tillägg

Den här artikeln vägleder användarhantering av ett NFO-tillägg (Network Function Operator) för Azure Operator Service Manager. Du använder det här Kubernetes-klustertillägget för att hantera containerbaserade arbetsbelastningar som Azure Operator Nexus-plattformen är värd för.

Du kör kommandona i den här artikeln när du har skapat Nexus Azure Kubernetes Service-klustret (NAKS) redo för tillägget. Kommandona förutsätter tidigare installation av Azure CLI och autentisering i målprenumerationen.

Skapa ett NFO-tillägg

Om du vill skapa ett NFO-tillägg kör du Azure CLI-kommandot az k8s-extension create.

Kommando

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=]
                        [--config global.networkfunctionextension.clusterRegistry.registryService.scale={"small", "medium", "large"}]
                        [--version]

Obligatoriska parametrar

--cluster-name -c

  • Namnet på Kubernetes-klustret.

--cluster-type -t

  • Ange Azure Arc-kluster, Azure Kubernetes Service-hanterade kluster (AKS), Azure Arc-enheter eller provisionedClusters.
  • Godkända värden: connectedClusters.

--extension-type

  • Tilläggstypens namn
  • Godkända värden: Microsoft.Azure.HybridNetwork.

--name -n

  • Namnet på tilläggsinstansen.

--resource-group -g

  • Resursgruppens namn. Du kan konfigurera standardgruppen med hjälp av az configure --defaults group=groupname.

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

  • Du måste ange den här konfigurationen.

Valfria parametrar

--auto-upgrade

  • Uppgradera automatiskt den lägre versionen av tilläggsinstansen.
  • Godkända värden: false, true.
  • Standardvärde: true.

--release-train

  • Ange releasetåget för tilläggstypen.
  • Godkända värden: preview, stable.
  • Standardvärde: stable.

--version

  • Ange den explicita version som ska installeras om --auto-upgrade-minor-version inte är aktiverad för tilläggsinstansen.

Valfria funktionsspecifika konfigurationer

Sidoinstallation

--config global.networkfunctionextension.enableLocalRegistry=

  • Med den här konfigurationen kan artefakter levereras till edge via hårdvarudisk.
  • Godkända värden: false, true.
  • Standardvärde: false.

Webhook för poddmuterande

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

  • Den här konfigurationen är en valfri parameter. Det spelar bara in när containernätverksfunktioner (CNFs) installeras i motsvarande versionsnamnområde.

  • Den här konfigurationen anger mer detaljerad kontroll ovanpå regler och namespaceSelectors.

  • Standardvärde:

    "((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\"))))"
    

    Det refererade matchningsvillkoret innebär att poddarna som godkänns i kube-system namnområdet endast muteras om de har minst en av följande etiketter: app == "commissioning", app == "descheduler"eller name == "cert-exporter". Annars är de inte muterade och fortsätter att hämtas från den ursprungliga källan i enlighet med Helm-diagrammet för CNF, komponenten eller programmet.

  • Godkänt värde: Alla giltiga CEL-uttryck (Common Expression Language).

  • Du kan ange eller uppdatera den här parametern under installationen eller uppdateringen av NFO-tillägget.

  • Det här villkoret spelar bara in när du installerar CNF, komponenten eller programmet i namnområdet i enlighet med reglerna och namespaceSelectors. Om du skapar fler poddar i namnområdet tillämpas det här villkoret.

Klusterregister

--config global.networkfunctionextension.enableClusterRegistry=

  • Den här konfigurationen etablerar ett register i klustret för att lokalt cachelagra artefakter.
  • Standardvärden aktiverar lättinläsningsläge om inte global.networkfunctionextension.enableEarlyLoading=true är konfigurerat.
  • Godkända värden: false, true.
  • Standardvärde: false.

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

  • Den här konfigurationen etablerar klusterregistret i hög tillgänglighetsläge (HA) om klusterregistret är aktiverat.
  • Den här konfigurationen använder en NAKS-volym nexus-shared i AKS-rekommendationen om värdet är inställt på false.
  • Antalet registerpoddrepliker är minst 3 och högst 5.
  • Godkända värden: true, false.
  • Standardvärde: true.

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

  • Den här konfigurationen etablerar klusterregisterpoddarna med horisontell autoskalning.
  • Godkända värden: true, false.
  • Standardvärde: true.

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

  • Den här konfigurationen etablerar flera repliker av webhooken för hög tillgänglighet.
  • Godkända värden: true, false.
  • Standardvärde: true.

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

  • Den här konfigurationen konfigurerar webhook-poddarna med horisontell autoskalning.
  • Godkända värden: true, false.
  • Standardvärde: true.

--config global.networkfunctionextension.enableEarlyLoading=

  • Den här konfigurationen möjliggör tidig inläsning av artefakter i klusterregistret innan Helm-installationen eller uppgraderingen.
  • Du kan bara aktivera den här konfigurationen när global.networkfunctionextension.enableClusterRegistry=true.
  • Godkända värden: false, true.
  • Standardvärde: false.

--config global.networkfunctionextension.clusterRegistry.storageClassName=

  • Du måste ange den här konfigurationen när global.networkfunctionextension.enableClusterRegistry=true.
  • networkfunctionextension tillhandahåller ett beständigt volymkrav (PVC) till lokala cacheartefakter från den här lagringsklassen.
  • Plattformsspecifika värden:
    • AKS: managed-csi
    • NAKS (standard): nexus-shared
    • NAKS (icke-HA): nexus-volume
    • Azure Stack Edge: managed-premium
  • Standardvärde: nexus-shared.

Anteckning

  • När du hanterar ett NAKS-kluster med hjälp av Azure Operator Service Manager aktiverar standardparametervärdena HA som rekommenderad konfiguration.
  • När du hanterar ett AKS-kluster med hjälp av Azure Operator Service Manager måste du inaktivera HA med hjälp av följande konfigurationsalternativ:
   --config global.networkfunctionextension.clusterRegistry.highAvailability.enabled=false
   --config global.networkfunctionextension.webhook.highAvailability.enabled=false
   --config global.networkfunctionextension.clusterRegistry.storageClassName=managed-csi

--config global.networkfunctionextension.clusterRegistry.storageSize=

  • Du måste ange den här konfigurationen när global.networkfunctionextension.enableClusterRegistry=true.
  • Den här konfigurationen anger den storlek som vi reserverar för klusterregistret.
  • Den här konfigurationen använder enheter som Gi och Ti för storleksändring.
  • Standardvärde: 100Gi

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=

  • Du måste ange den här konfigurationen som ett schema i unix crontab-standardformat.
  • Den här konfigurationen, som anges som en tom sträng, inaktiverar det schemalagda jobbet så att du kan välja att inte köra skräphantering.
  • Standardvärde: 0 0 * * *. Kör jobbet en gång varje dag.

--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=

  • Den här konfigurationen anger tröskelvärdet i procent för att utlösa skräpinsamlingsprocessen för klusterregistret.
  • Den här konfigurationen utlöser skräpinsamlingsprocessen när klusterregisteranvändningen överskrider det här värdet.
  • Standardvärde: 0.

--config global.networkfunctionextension.clusterRegistry.registryService.scale=

  • Den här konfigurationen anger processor- och minnesresurserna för klusterregistret till ett fördefinierat skalningsalternativ.

  • Accepterade värden: small, medium, large.

  • Standardvärde: medium.

  • Följande är registerresursspecifikationerna för alla tre skalor:

        - requests:
          - small: cpu: 100m, memory: 250Mi
          - medium: cpu: 250m, memory: 500Mi
          - large: cpu: 500m, memory: 1Gi
        - limits:
          - small: cpu: 100m, memory: 2Gi
          - medium: cpu: 500m, memory: 2Gi
          - large: cpu: 1, memory: 4Gi
    

Uppdatera ett NFO-tillägg

Om du vill uppdatera ett NFO-tillägg kör du Azure CLI-kommandot az k8s-extension update:

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

Ta bort ett NFO-tillägg

Om du vill ta bort ett NFO-tillägg kör du Azure CLI-kommandot az k8s-extension delete:

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

Exempel

Skapa ett NFO-tillägg med automatisk uppgradering:

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

Skapa ett NFO-tillägg med en låst version:

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

Skapa ett NFO-tillägg med klusterregistret (standardläget för lat inläsning) aktiverat på 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

Skapa ett NFO-tillägg med klusterregistret (standardläget för lat inläsning) aktiverat på 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

Skapa ett NFO-tillägg med funktionen för klusterregister (tidig inläsning) aktiverad:

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

Skapa ett NFO-tillägg med funktionen för sidoinläsning aktiverad:

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

Uppdatera ett NFO-tillägg för att aktivera klusterregistret:

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

Uppdatera ett NFO-tillägg för att nå en ny målversion:

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