Delen via


Onboarding van een containernetwerkfunctie (CNF) naar Azure Operator Service Manager (AOSM)

In deze handleiding leren uitgevers en serviceontwerpers van netwerkfuncties hoe u de Azure CLI AOSM-extensie gebruikt om een containernetwerkfunctie naar AOSM te onboarden. De CNF kan later worden geïmplementeerd op een Met Azure Arc verbonden Kubernetes-cluster, met inbegrip van een Azure Operator Nexus-cluster.

Onboarding is een proces met meerdere stappen. Zodra u aan de vereisten voldoet, gebruikt u de Azure CLI AOSM-extensie voor het volgende:

  1. Genereer BICEP-bestanden die een Netwerkfunctiedefinitiegroep en -versie (NFD) definiëren op basis van uw Helm-grafieken en -yaml.
  2. Publiceer de NFD en upload de CNF-installatiekopieën en -grafieken naar een Artefact Store (AOSM beheerd Azure Container Registry (ACR)).
  3. Voeg uw gepubliceerde NFD toe aan de BICEP-bestanden die een NSD (Network Service Design Group and Version) definiëren.
  4. Publiceer de NSD.

Vereisten

  • U hebt AOSM ingeschakeld voor uw Azure-abonnement.
  • Als uw CNF is bedoeld om te worden uitgevoerd op Azure Operator Nexus, hebt u toegang tot een Azure Operator Nexus-exemplaar en hebt u de vereisten voor de implementatie van de workload voltooid.

Notitie

Het wordt sterk aanbevolen dat u hebt getest dat een helm install van uw Helm-pakket slaagt in uw met Arc verbonden Kubernetes-doelomgeving.

Machtigingen configureren

  • U hebt de rol Inzender voor uw abonnement nodig om een resourcegroep of een bestaande resourcegroep te maken waarvoor u de rol Inzender hebt.
  • U hebt de Reader/AcrPull roltoewijzingen voor de bron-ACR met uw installatiekopieën nodig.
  • U hebt de Contributor en AcrPush roltoewijzingen voor het abonnement nodig die het beheerde artefactarchief van de AOSM bevatten. Met deze machtigingen kan de Azure CLI AOSM-extensie een directe ACR-naar-ACR-kopie uitvoeren. Direct kopiëren is de snelste methode voor het overbrengen van afbeeldingen van de ene ACR naar de andere.
    • Uw bedrijfsbeleid voorkomt mogelijk dat u machtigingen voor abonnementsbereik hebt. De --no-subscription-permissions parameter, die beschikbaar is voor de az aosm nfd publish en az aosm nsd publish opdrachten, maakt gebruik van strikt bereikmachtigingen die zijn afgeleid van de AOSM-service om een kopie in twee stappen naar en van uw lokale computer te organiseren. Deze tweestapskopie is langzamer, maar hiervoor zijn geen machtigingen voor abonnementsbereik vereist.

Helm-pakketten

  • De Helm-pakketten die u wilt onboarden, moeten aanwezig zijn op de lokale opslag van de computer van waaruit u de CLI uitvoert.
    • De Azure CLI AOSM-extensie gebruikt standaard het values.yaml bestand in het Helm-pakket. De CLI biedt ondersteuning voor het negeren van dit gedrag met een alternatief values.yaml. Dit alternatieve bestand moet aanwezig zijn op de lokale opslag van de computer van waaruit u de CLI uitvoert.

Notitie

Het wordt sterk aanbevolen dat het Helm-pakket een schema bevat voor de Helm-waarden en dat de Helm-pakketsjablonen zoals verwacht wanneer wordt uitgevoerd met helm template behulp van de values.yaml die u wilt gebruiken bij het onboarden naar AOSM.

Containerinstallatiekopieën

  • Uw containerinstallatiekopieën zijn aanwezig in een bestaande ACR of een alternatief containerregister dat ondersteuning biedt voor de Docker-API. Containerinstallatiekopieën moeten worden opgeslagen in uw bronregister in een structuur die overeenkomt met de locatie van de installatiekopieën die zijn gedefinieerd in uw Helm-grafieken. Deze vereiste wordt uitgelegd in CLI CNF-installatiekopieën detecteren en uploaden.
  • Gebruik de docker login opdracht om u aan te melden bij een niet-Azure-containerregister dat als host fungeert voor uw containerinstallatiekopieën voordat u opdrachten uitvoert az aosm . Deze stap is niet vereist als u een ACR gebruikt: de Azure CLI AOSM-extensie wordt automatisch aangemeld.

Helm- en Docker-engine

  • Installeer Helm CLI op de hostcomputer. U moet Helm v3.8.0 of hoger gebruiken.
  • Installeer Docker op de hostcomputer.

Azure CLI downloaden en installeren

Als u de Azure CLI lokaal wilt installeren, raadpleegt u De Azure CLI installeren.

Als u zich wilt aanmelden bij de Azure CLI, gebruikt u de az login opdracht en voltooit u de aanwijzingen die in uw terminal worden weergegeven om de verificatie te voltooien. Raadpleeg Aanmelden met Azure CLI voor meer aanmeldingsopties.

Notitie

Als u in Windows of macOS werkt, kunt u Azure CLI uitvoeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie. U kunt ook de Bash-omgeving gebruiken in de Azure Cloud Shell. Zie De Cloud Shell starten voor het gebruik van de Bash-omgeving in Azure Cloud Shell voor meer informatie.

AOSM CLI-extensie installeren

Voor de Az CLI AOSM-extensie is versie 2.54.0 of hoger van de Azure CLI vereist.

  1. Voer deze az version opdracht uit om de versie en afhankelijke bibliotheken te zien die zijn geïnstalleerd.
  2. Voer az upgrade een upgrade uit naar de huidige versie van Azure CLI.

Installeer de AOSM CLI-extensie met behulp van deze opdracht:

az extension add --name aosm

De netwerkfunctiedefinitiegroep en -versie bouwen

Met deze stap maakt u een map in de werkmap die wordt aangeroepen cnf-cli-output met de BICEP-sjablonen van de AOSM-resources die uw netwerkfunctiedefinitiegroep en -versie definiëren, en de Artifact Store. Deze resources worden uiteindelijk opgenomen in uw Network Service Design.

  1. Genereer het azure CLI AOSM-extensieinvoerbestand voor een CNF.

    az aosm nfd generate-config --definition-type cnf --output-file <filename.jsonc>
    
  2. Open het invoerbestand dat u in de vorige stap hebt gegenereerd en gebruik de inlineopmerkingen om de vereiste waarden in te voeren. In dit voorbeeld ziet u het invoerbestand voor de Az CLI AOSM-extensie voor een fictieve Contoso CNF.

    Notitie

    De Azure CLI AOSM-extensie bevat alleen vereiste parameters zonder standaardwaarden in de invoer values.yaml . U kunt instellen expose_all_parameters om alle Helm-waarden beschikbaar te true maken in de Network Function Definition Version (NFDV) en CGS (Configuration Group Schema). Zie Parameter beschikbaar maken met behulp van de CLI-extensie van AOSM voor meer informatie.

    {
      // Azure location to use when creating resources e.g uksouth
      "location": "eastus",
      // Name of the Publisher resource you want your definition published to.
      // Will be created if it does not exist.
      "publisher_name": "contoso",
      // Resource group for the Publisher resource.
      // You should create this before running the publish command
      "publisher_resource_group_name": "contoso",
      // Name of the ACR Artifact Store resource.
      // Will be created if it does not exist.
      "acr_artifact_store_name": "contoso-artifact-store",
      // Name of NF definition.
      "nf_name": "contoso-cnf-nfd",
      // Version of the NF definition in 1.1.1 format (three integers separated by dots).
      "version": "1.0.0",
      // If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults.
      // If not set or set to false, only required parameters without defaults will be exposed.
      "expose_all_parameters": false,
      // List of registries from which to pull the image(s).
      // For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
      // For non Azure Container Registries, ensure you have run a docker login command before running build.
      "image_sources": ["contoso.azuercr.io/contoso", "docker.io"],
      // List of Helm packages to be included in the CNF.
      "helm_packages": [
          {
              // The name of the Helm package.
              "name": "contoso-helm-package",
              // The file path to the helm chart on the local disk, relative to the directory from which the command is run.
              // Accepts .tgz, .tar or .tar.gz, or an unpacked directory. Use Linux slash (/) file separator even if running on Windows.
              "path_to_chart": "/home/cnf-onboard/contoso-cnf-helm-chart-0-1-0.tgz",
              // The file path (absolute or relative to this configuration file) of YAML values file on the local disk which will be used instead of the values.yaml file present in the helm chart.
              // Accepts .yaml or .yml. Use Linux slash (/) file separator even if running on Windows.
              "default_values": "",
          }
      ]
    }
    
  3. Voer de volgende opdracht uit om de BICEP-sjablonen voor netwerkfunctiesdefinitiegroep en versie te bouwen.

az aosm nfd build --definition-type cnf --config-file <filename.jsonc>

U kunt de structuur van mappen en bestanden bekijken en indien nodig wijzigingen aanbrengen.

De netwerkfunctiedefinitiegroep en -versie publiceren

Met deze stap maakt u de AOSM-resources die de definitie van de netwerkfunctie en het artefactarchief definiëren die worden gebruikt voor het opslaan van de containerinstallatiekopieën van de netwerkfunctie. Ook worden de afbeeldingen en grafieken geüpload naar de Artifact Store door ze rechtstreeks vanuit de bron-ACR te kopiëren of, als u geen abonnementsbereik Contributor en AcrPush rollen hebt, door de docker-installatiekopieën lokaal opnieuw op te halen en te uploaden naar de Artifact Store met behulp van nauw bereikreferenties die zijn gegenereerd vanuit de AOSM-service.

  1. Voer de volgende opdracht uit om de netwerkfunctiedefinitiegroep en -versie te publiceren. Als u geen abonnementsbereik Contributor en AcrPush -rollen hebt, neemt --no-subscription-permissions u deze op in de opdracht.

Notitie

Als u Windows gebruikt, moet Docker Desktop worden uitgevoerd tijdens de publicatiestap.

az aosm nfd publish --build-output-folder cnf-cli-output --definition-type cnf

De netwerkserviceontwerpgroep en -versie bouwen

In deze sectie wordt een map gemaakt in de werkmap met de naam nsd-cli-output. Deze map bevat de BICEP-sjablonen van de AOSM-resources die een netwerkserviceontwerpgroep en -versie definiëren. Dit netwerkserviceontwerp is een sjabloon die wordt gebruikt in de sitenetwerkserviceresource waarmee de netwerkfunctie wordt geïmplementeerd die u in de vorige secties hebt uitgevoerd.

  1. Genereer het NSD-invoerbestand voor de Azure CLI AOSM-extensie.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. Open het invoerbestand dat u in de vorige stap hebt gegenereerd en gebruik de inlineopmerkingen om de vereiste waarden in te voeren. Het gegenereerde invoerbestand bevat een extra resource_element_type type ArmTemplate. Dit is niet nodig bij het onboarden van een CNF; u kunt deze verwijderen. Het resultaat moet eruitzien zoals in dit voorbeeld. In het voorbeeld ziet u het invoerbestand voor de Az CLI AOSM-extensie voor een fictieve Contoso NSD die kan worden gebruikt om een fictieve Contoso CNF te implementeren op een Met Arc verbonden Nexus Kubernetes-cluster.

    {
        // Azure location to use when creating resources e.g uksouth
        "location": "eastus",
        // Name of the Publisher resource you want your definition published to.
        // Will be created if it does not exist.
        "publisher_name": "contoso",
        // Resource group for the Publisher resource.
        // Will be created if it does not exist.
        "publisher_resource_group_name": "contoso",
        // Name of the ACR Artifact Store resource.
        // Will be created if it does not exist.
        "acr_artifact_store_name": "contoso-artifact-store",
        // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
        "nsd_name": "contoso-nsd",
        // Version of the NSD to be created. This should be in the format A.B.C
        "nsd_version": "1.0.0",
        // Optional. Description of the Network Service Design Version (NSDV).
        "nsdv_description": "An NSD that deploys the onboarded contoso-cnf NFD",
        // List of Resource Element Templates (RETs).
        // There must be at least one NF RET.
        // ArmTemplate RETs are optional. Delete if not required.
        "resource_element_templates": [
            {
                // Type of Resource Element. Either NF or ArmTemplate
                "resource_element_type": "NF",
                "properties": {
                    // The name of the existing publisher for the NSD.
                    "publisher": "contoso",
                    // The resource group that the publisher is hosted in.
                    "publisher_resource_group": "contoso",
                    // The name of the existing Network Function Definition Group to deploy using this NSD.
                    // This will be the same as the NF name if you published your NFDV using the CLI.
                    "name": "contoso-cnf-nfd",
                    // The version of the existing Network Function Definition to base this NSD on.
                    // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version.
                    "version": "1.0.0",
                    // The region that the NFDV is published to.
                    "publisher_offering_location": "eastus",
                    // Type of Network Function. Valid values are 'cnf' or 'vnf'.
                    "type": "cnf"
                }
            }
        ]
    }
    

    Notitie

    In de sectie resource-elementsjabloon wordt gedefinieerd welke NFD is opgenomen in de NSD. De eigenschappen moeten overeenkomen met de eigenschappen die worden gebruikt in het invoerbestand dat aan de az aosm nfd build opdracht is doorgegeven. Dit komt doordat de Azure CLI AOSM-extensie valideert dat de NFD correct is ge onboardd bij het bouwen van de NSD.

  3. Voer de volgende opdracht uit om de BICEP-sjablonen voor netwerkserviceontwerpgroep en versie te bouwen.

az aosm nsd build --config-file <nsd-output-filename.jsonc>

U kunt de map- en bestandsstructuur bekijken en indien nodig wijzigingen aanbrengen.

De netwerkserviceontwerpgroep en -versie publiceren

Met deze stap maakt u de AOSM-resources die de netwerkserviceontwerpgroep en -versie definiëren. Ook worden artefacten die door de NSD zijn vereist, geüpload naar de Artifact Store (ARM-sjabloon voor netwerkfuncties).

  1. Voer de volgende opdracht uit om de netwerkserviceontwerpgroep en -versie te publiceren. Als u geen abonnementsbereik Contributor en AcrPush -rollen hebt, neemt --no-subscription-permissions u deze op in de opdracht.
az aosm nsd publish --build-output-folder nsd-cli-output

U hebt nu een volledige set bronnen voor AOSM-uitgevers en kunt de operatorstroom uitvoeren.

Volgende stappen