Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Genereer Bicep-bestanden die een netwerkfunctiedefinitiegroep en -versie (NFD) definiëren op basis van uw Helm-grafieken en -waarden.yaml.
- Publiceer de NFD en upload de CNF-afbeeldingen en -grafieken naar een Artifact Store (AOSM-beheerd Azure Container Registry (ACR)).
- Voeg uw gepubliceerde NFD toe aan de Bicep-bestanden die een NSD (Network Service Design Group and Version) definiëren.
- Publiceer de NSD.
Vereiste voorwaarden
- 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.
Opmerking
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 van Inzender nodig voor uw abonnement om een nieuwe resourcegroep te maken, of gebruik een bestaande resourcegroep waarin u al de Inzender-rol hebt.
- U hebt de
Reader/AcrPullroltoewijzingen voor de bron-ACR met uw afbeeldingen nodig. - U hebt de
ContributorenAcrPushroltoewijzingen voor het abonnement nodig dat de AOSM managed Artifact Store bevat. 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 deaz aosm nfd publish- enaz aosm nsd publish-opdrachten, maakt gebruik van strikt gedefinieerde machtigingen die zijn afgeleid van de AOSM-service om een tweestaps kopie naar en van uw lokale computer uit te voeren. Deze tweestapskopie is langzamer, maar hiervoor zijn geen machtigingen voor abonnementsbereik vereist.
- Uw bedrijfsbeleid voorkomt mogelijk dat u machtigingen voor abonnementsbereik hebt. De
Helmpakketten
- 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.yamlbestand in het Helm-pakket. De CLI biedt ondersteuning voor het negeren van dit gedrag met een alternatiefvalues.yaml. Dit alternatieve bestand moet aanwezig zijn op de lokale opslag van de computer van waaruit u de CLI uitvoert.
- De Azure CLI AOSM-extensie gebruikt standaard het
Opmerking
Het wordt sterk aanbevolen dat het Helm-pakket een schema voor de Helm-waarden bevat en dat de Helm-pakketsjablonen functioneren zoals verwacht wanneer helm template wordt uitgevoerd met behulp van de values.yaml die u wilt gebruiken bij de onboarding naar AOSM.
Containerafbeeldingen
- Uw containerinstallatiekopieën zijn aanwezig in een bestaande ACR of een alternatief containerregister dat ondersteuning biedt voor de Docker-API. Containerafbeeldingen moeten worden opgeslagen in uw bronregister in een structuur die overeenkomt met de locatie van de afbeeldingen zoals gedefinieerd in uw helm charts. Deze vereiste wordt uitgelegd in CLI CNF-afbeelding ontdekking en upload.
- Gebruik de
docker loginopdracht om u aan te melden bij een niet-Azure-containerregister dat uw containerafbeeldingen host voordat u eenaz aosmopdracht uitvoert. 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.
Opmerking
Als je op Windows of macOS werkt, overweeg dan om Azure CLI in een Docker-container te draaien. Voor meer informatie, zie Hoe u de Azure CLI in een Docker-container kunt uitvoeren. 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.
- Voer deze
az versionopdracht uit om de versie en afhankelijke bibliotheken te zien die zijn geïnstalleerd. - Voer
az upgradeeen 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-bestanden 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.
Genereer het Azure CLI-invoerbestand voor de AOSM-extensie voor een CNF.
az aosm nfd generate-config --definition-type cnf --output-file <filename.jsonc>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.
Opmerking
De Azure CLI AOSM-extensie bevat alleen vereiste parameters zonder standaardwaarden in de invoer
values.yaml. U kuntexpose_all_parametersinstellen optrueom alle helmwaarden binnen de Network Function Definition Version (NFDV) en het Configuratiegroep Schema (CGS) beschikbaar te maken. 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": "", } ] }Voer de volgende opdracht uit om de netwerkfunctiedefinitiegroep en versie Bicep-bestanden 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 of Contributor en AcrPush rollen hebt, door de docker-images lokaal opnieuw te labelen en te uploaden naar de Artifact Store met behulp van specifieke referenties die door de AOSM-service zijn gegenereerd.
- Voer de volgende opdracht uit om de netwerkfunctiedefinitiegroep en -versie te publiceren. Als u geen
ContributorenAcrPushrollen hebt binnen het abonnementsbereik, voeg--no-subscription-permissionstoe aan de opdracht.
Opmerking
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-bestanden 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.
Genereer het NSD-invoerbestand voor de Azure CLI AOSM-extensie.
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>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_typevan het typeArmTemplate. 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" } } ] }Opmerking
In de sectie resource-elementtemplate 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 buildopdracht is doorgegeven. Dit komt doordat de Azure CLI AOSM-extensie valideert dat de NFD correct is ge onboardd bij het bouwen van de NSD.Voer de volgende opdracht uit om de bestanden Network Service Design Group en Version Bicep 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).
- Voer de volgende opdracht uit om de netwerkserviceontwerpgroep en -versie te publiceren. Als u geen
ContributorenAcrPushrollen hebt binnen het abonnementsbereik, voeg--no-subscription-permissionstoe aan de opdracht.
az aosm nsd publish --build-output-folder nsd-cli-output
U beschikt nu over een complete set AOSM-bronnen en bent klaar om de operatorflow uit te voeren.