Připojení kontejnerizované síťové funkce (CNF) k Azure Operator Service Manageru (AOSM)
V tomto návodu se vydavatelé síťových funkcí a návrháři služeb naučí, jak pomocí rozšíření Azure CLI AOSM připojit kontejnerizovanou síťovou funkci do AOSM. CNF je možné později nasadit do clusteru Kubernetes připojeného ke službě Azure Arc, včetně clusteru Azure Operator Nexus.
Onboarding je proces s více kroky. Jakmile splníte požadavky, použijete rozšíření Azure CLI AOSM k:
- Vygenerujte soubory BICEP, které definují skupinu definic síťových funkcí a verzi (NFD) na základě grafů a hodnot Helm.yaml.
- Publikujte NFD a nahrajte image a grafy CNF do úložiště artefaktů (AOSM spravovaného službou Azure Container Registry (ACR)).
- Přidejte publikovanou NFD do souborů BICEP, které definují skupinu návrhu síťových služeb a verzi (NSD).
- Publikujte NSD.
Požadavky
- Ve svém předplatném Azure jste povolili AOSM .
- Pokud má váš CNF běžet na platformě Azure Operator Nexus, máte přístup k instanci Azure Operator Nexus a dokončili požadavky pro nasazení úloh.
Poznámka:
Důrazně doporučujeme otestovat, že balíček helm install
Helm bude úspěšný v cílovém prostředí Kubernetes připojeném ke službě Arc.
Konfigurace oprávnění
- Abyste mohli vytvořit skupinu prostředků, nebo existující skupinu prostředků, ve které máte roli přispěvatele, musíte mít před předplatnou roli Přispěvatel.
- Potřebujete
Reader
/AcrPull
přiřazení rolí ve zdrojové službě ACR obsahující vaše image. - V předplatném, které bude obsahovat úložiště artefaktů spravovaných službou AOSM, vyžadujete
Contributor
AcrPush
přiřazení rolí a rolí. Tato oprávnění umožňují rozšíření Azure CLI AOSM provádět přímé kopírování ACR-to-ACR. Přímá kopie je nejrychlejší způsob přenosu obrázků z jednoho ACR do druhého.- Zásady vaší společnosti vám můžou bránit v tom, abyste měli oprávnění vymezená předplatným. Parametr
--no-subscription-permissions
dostupný proaz aosm nfd publish
příkazy aaz aosm nsd publish
příkazy používá úzce vymezená oprávnění odvozená ze služby AOSM k orchestraci dvoustupňové kopie do a z místního počítače. Tato dvoustupňová kopie je pomalejší, ale nevyžaduje oprávnění vymezená předplatným.
- Zásady vaší společnosti vám můžou bránit v tom, abyste měli oprávnění vymezená předplatným. Parametr
Balíčky Helm
- Balíčky Helm, které chcete připojit, musí být přítomné v místním úložišti počítače, ze kterého spouštíte rozhraní příkazového řádku.
- Rozšíření Azure CLI AOSM ve výchozím nastavení použije
values.yaml
soubor v balíčku Helm. Rozhraní příkazového řádku podporuje přepsání tohoto chování alternativnímvalues.yaml
. Tento alternativní soubor musí existovat v místním úložišti počítače, ze kterého spouštíte rozhraní příkazového řádku.
- Rozšíření Azure CLI AOSM ve výchozím nastavení použije
Poznámka:
Důrazně doporučujeme, aby balíček Helm obsahoval schéma pro hodnoty helmu a aby šablony balíčků Helm podle očekávání při helm template
spuštění pomocí values.yaml, které chcete použít při onboardingu do AOSM.
Image kontejneru
- Vaše image kontejneru se nacházejí buď v existující službě ACR, nebo v alternativním registru kontejneru, který podporuje rozhraní API Dockeru. Image kontejnerů musí být uložené ve zdrojovém registru ve struktuře, která odpovídá umístění image definované v grafech helmu. Tento požadavek je vysvětlený ve zjišťování a nahrávání imagí CNF rozhraní příkazového řádku.
docker login
Před spuštěním příkazůaz aosm
se pomocí příkazu přihlaste k registru kontejneru mimo Azure, který hostuje image kontejneru. Tento krok se nevyžaduje, pokud používáte ACR: Rozšíření Azure CLI AOSM se automaticky přihlásí.
Helm a modul Dockeru
- Nainstalujte Rozhraní příkazového řádku Helm na hostitelský počítač. Musíte použít Helm v3.8.0 nebo novější.
- Nainstalujte Docker do hostitelského počítače.
Stažení a instalace Azure CLI
Pokud chcete azure CLI nainstalovat místně, přečtěte si, jak nainstalovat Azure CLI.
Pokud se chcete přihlásit k Azure CLI, použijte az login
příkaz a dokončete výzvy zobrazené v terminálu a dokončete ověřování. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Poznámka:
Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru. Prostředí Bash můžete použít také v Azure Cloud Shellu. Další informace najdete v tématu Spuštění Cloud Shellu pro použití prostředí Bash v Azure Cloud Shellu.
Instalace rozšíření AOSM CLI
Rozšíření Az CLI AOSM vyžaduje verzi 2.54.0 nebo novější azure CLI.
- Spuštěním zobrazíte
az version
nainstalované verze a závislé knihovny. - Spusťte
az upgrade
upgrade na aktuální verzi Azure CLI.
Pomocí tohoto příkazu nainstalujte rozšíření rozhraní příkazového řádku AOSM:
az extension add --name aosm
Sestavení skupiny definic síťových funkcí a verze
Tento krok vytvoří složku v pracovním adresáři volaným cnf-cli-output
pomocí šablon BICEP prostředků AOSM, které definují vaši skupinu definic síťových funkcí a verzi a úložiště artefaktů. Tyto prostředky budou nakonec zahrnuty do návrhu síťových služeb.
Vygenerujte vstupní soubor přípony Azure CLI AOSM pro CNF.
az aosm nfd generate-config --definition-type cnf --output-file <filename.jsonc>
Otevřete vstupní soubor, který jste vygenerovali v předchozím kroku, a pomocí vložených komentářů zadejte požadované hodnoty. Tento příklad ukazuje vstupní soubor přípony Az CLI AOSM pro fiktivní CNF společnosti Contoso.
Poznámka:
Rozšíření Azure CLI AOSM zveřejňuje požadované parametry pouze bez výchozích hodnot ve vstupu
values.yaml
. Můžete nastavitexpose_all_parameters
tak, abytrue
se zpřístupnily všechny hodnoty helmu ve verzi definice síťové funkce (NFDV) a schématu skupiny konfigurace (CGS). Další informace najdete v tématu Zpřístupnění parametru pomocí rozšíření rozhraní příkazového řádku AOSM.{ // 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": "", } ] }
Spuštěním následujícího příkazu sestavte skupinu definic síťových funkcí a šablony BICEP verze.
az aosm nfd build --definition-type cnf --config-file <filename.jsonc>
Strukturu složek a souborů si můžete prohlédnout a v případě potřeby upravit.
Publikování skupiny a verze definice síťové funkce
Tento krok vytvoří prostředky AOSM, které definují definici síťové funkce a úložiště artefaktů, které se použijí k ukládání imagí kontejneru síťové funkce. Také nahraje obrázky a grafy do úložiště artefaktů buď tak, že je zkopírujete přímo ze zdrojové služby ACR, nebo pokud nemáte obor Contributor
předplatného a AcrPush
role, přetáhnete image Dockeru místně a nahrajete je do úložiště artefaktů pomocí úzce vymezených přihlašovacích údajů vygenerovaných ze služby AOSM.
- Spuštěním následujícího příkazu publikujte skupinu definic síťových funkcí a verzi. Pokud nemáte obor
Contributor
předplatného aAcrPush
role, zahrňte--no-subscription-permissions
ho do příkazu.
Poznámka:
Pokud používáte Windows, musíte mít v kroku publikování spuštěnou aplikaci Docker Desktop.
az aosm nfd publish --build-output-folder cnf-cli-output --definition-type cnf
Sestavení skupiny a verze návrhu síťové služby
Tento oddíl vytvoří složku v pracovním adresáři s názvem nsd-cli-output
. Tato složka obsahuje šablony BICEP prostředků AOSM, které definují skupinu návrhu síťové služby a verzi. Tento návrh síťové služby je šablona použitá v prostředku síťové služby lokality, která nasadí funkci sítě, kterou jste nasadili v předchozích částech.
Vygenerujte vstupní soubor rozšíření Azure CLI AOSM NSD.
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
Otevřete vstupní soubor, který jste vygenerovali v předchozím kroku, a pomocí vložených komentářů zadejte požadované hodnoty. Vygenerovaný vstupní soubor obsahuje další
resource_element_type
typArmTemplate
. To není nutné při připojování CNF; můžete ho odstranit. Výsledek by měl vypadat jako v tomto příkladu. Příklad ukazuje vstupní soubor s příponou Az CLI AOSM pro fiktivní skupinu NSD společnosti Contoso, která se dá použít k nasazení fiktivního SOUBORU CNF společnosti Contoso do clusteru Nexus Kubernetes připojeného k arc.{ // 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" } } ] }
Poznámka:
Oddíl šablony elementu prostředku definuje, který NFD je součástí NSD. Vlastnosti musí odpovídat vlastnostem použitým ve vstupním souboru předaném
az aosm nfd build
příkazu. Důvodem je to, že rozšíření Azure CLI AOSM ověřuje, že při sestavování NSD je správně nasazený NFD.Spuštěním následujícího příkazu sestavte skupinu návrhu síťové služby a šablony BICEP verze.
az aosm nsd build --config-file <nsd-output-filename.jsonc>
V případě potřeby můžete zkontrolovat strukturu složek a souborů a provádět změny.
Publikování skupiny a verze návrhu síťové služby
Tento krok vytvoří prostředky AOSM, které definují skupinu a verzi návrhu síťové služby. Také nahraje artefakty vyžadované NSD do úložiště artefaktů (šablona ARM síťové funkce).
- Spuštěním následujícího příkazu publikujte skupinu a verzi návrhu síťové služby. Pokud nemáte obor
Contributor
předplatného aAcrPush
role, zahrňte--no-subscription-permissions
ho do příkazu.
az aosm nsd publish --build-output-folder nsd-cli-output
Teď máte úplnou sadu prostředků vydavatele AOSM a jste připraveni provést tok operátoru.