Snabbstart: Publicera Nginx-container som containerbaserad nätverksfunktion (CNF)
Den här snabbstarten az aosm
beskriver hur du använder Azure CLI-tillägget för att skapa och publicera en grundläggande definition för nätverksfunktioner. Syftet är att demonstrera arbetsflödet för AOSM-resurserna (Publisher Azure Operator Service Manager). De grundläggande begrepp som presenteras här är avsedda att förbereda användarna för att skapa mer spännande tjänster.
Förutsättningar
Ett Azure-konto med en aktiv prenumeration krävs. Om du inte har en Azure-prenumeration följer du anvisningarna här Börja kostnadsfritt för att skapa ett konto innan du börjar.
Slutför snabbstarten : Slutför förutsättningarna för att distribuera en containerbaserad nätverksfunktion i Azure Operator Service Manager.
En befintlig resursgrupp där du har rollen Deltagare eller Rollen Deltagare för den här prenumerationen så att AOSM CLI-tillägget kan skapa resursgruppen.
Skapa indatafil
Skapa en indatafil för publicering av nätverksfunktionsdefinitionen. Kör följande kommando för att generera indatakonfigurationsfilen för NFD (Network Function Definition).
az aosm nfd generate-config --definition-type cnf
Körningen av föregående kommando genererar en cnf-input.jsonc-fil.
Kommentar
Redigera filen cnf-input.jsonc. Ersätt den med de värden som visas i följande exempel. Spara filen som input-cnf-nfd.jsonc.
Om du använder en befintlig resursgrupp ändrar du fältet publisher_resource_group_name
så att det matchar det.
Dricks
Du kan använda flera containerregister som källor för dina avbildningar i AOSM CLI. De avbildningar som ska kopieras från dessa register väljs automatiskt baserat på helm-paketschemat. Källregistren konfigureras i image_sources
listan över filen cnf-input.jsonc.
När du använder ACL måste du ha rollerna Läsare och AcrPull på ACR. När du använder icke-ACR-register måste du köra docker login
för att autentisera med varje privat register innan du az aosm nfd build
kör kommandot.
I den här snabbstarten använder docker.io
vi som avbildningskällans register. Det här är ett offentligt register och kräver inte autentisering.
Här är exempel på indata-cnf-nfd.jsonc-fil:
{
// Azure location to use when creating resources e.g uksouth
"location": "uksouth",
// Name of the Publisher resource you want your definition published to.
// Will be created if it does not exist.
"publisher_name": "nginx-publisher",
// Resource group for the Publisher resource.
// Will be created if it does not exist.
"publisher_resource_group_name": "nginx-publisher-rg",
// Name of the ACR Artifact Store resource.
// Will be created if it does not exist.
"acr_artifact_store_name": "nginx-nsd-acr",
// Name of NF definition.
"nf_name": "nginx",
// Version of the NF definition in 1.1.1 format (three integers separated by dots).
"version": "1.0.0",
// 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": ["docker.io"],
// List of Helm packages to be included in the CNF.
"helm_packages": [
{
"name": "nginxdemo",
"path_to_chart": "nginxdemo-0.3.0.tgz",
"default_values": ""
}
]
}
- publisher_name – Namnet på den Publisher-resurs som du vill att definitionen ska publiceras till. Skapas om den inte redan finns.
- publisher_resource_group_name – Resursgrupp för Publisher-resursen. Skapas om den inte redan finns.
- acr_artifact_store_name – Namnet på Resursen för Azure Container Registry (ACR) Artifact Store. Skapas om den inte redan finns.
- location – Den Azure-plats som ska användas när du skapar resurser.
- nf_name – namnet på NF-definitionen.
- version – NF-definitionens version i A.B.C-format.
- image_sources – lista över de register som bilderna ska hämtas från.
- helm_packages:
- name – Namnet på Helm-paketet.
- path_to_chart – Filsökvägen för Helm Chart på den lokala disken. Accepterar .tgz, .tar eller .tar.gz. Använd Filavgränsare för Linux-snedstreck (/) även om den körs i Windows. Sökvägen ska vara en absolut sökväg eller sökväg i förhållande till filens
cnf-input.jsonc
plats. - default_values – Filsökvägen (absolut eller relativ till
cnf-input.jsonc
) för YAML-värdefilen på den lokala disk som används i stället för filen values.yaml som finns i helm-diagrammet. - depends_on – Namnen på Helm-paketen som det här paketet är beroende av. Lämna som en tom matris om det inte finns några beroenden.
Skapa nätverksfunktionsdefinitionen (NFD)
Om du vill skapa NFD (Network Function Definition) initierar du byggprocessen.
az aosm nfd build -f input-cnf-nfd.jsonc --definition-type cnf
Az CLI AOSM-tillägget genererar en katalog med namnet cnf-cli-output
. Den här katalogen innehåller BICEP-filerna som definierar de AOSM-resurser som krävs för att publicera en NFDV och ladda upp de avbildningar som krävs för att distribuera den till AOSM-hanterad lagring. Granska de genererade filerna för att få en bättre förståelse för NFD-strukturen (Network Function Definition).
Katalog/fil | beskrivning |
---|---|
nfDefinition/deployParameters.json | Definierar schemat för de distributionsparametrar som krävs för att skapa en nätverksfunktion (NF) från den här NFDV-versionen (Network Function Definition Version). |
nfDefinition/nginxdemo-mappings.json | Mappar distributionsparametrarna för NFDV (Network Function Definition Version) till de värden som krävs för helm-diagrammet. |
nfDefinition/deploy.bicep | Bicep-mall för att skapa själva NFDV-versionen (Network Function Definition Version). |
artefakter/artifacts.json | En lista över helm-paket och containeravbildningar som krävs av NF. |
artifactManifest/deploy.bicep | Bicep-mall för att skapa artefaktmanifestet. |
base/deploy.bicep | Bicep-mall för att skapa resurser för utgivare, nätverksfunktionsdefinition och artefaktarkiv |
Publicera nätverksfunktionsdefinitionen och ladda upp artefakter
Kör följande kommando för att publicera NFD (Network Function Definition) och ladda upp de associerade artefakterna:
Kommentar
Om du använder Windows måste Docker Desktop köras under publiceringssteget.
Kommentar
Utgivarnamn måste vara unika i en region. Det är ganska troligt att nginx-publisher som definierats i exempelkonfigurationsfilen redan finns.
Om du får ett felmeddelande om att det redan finns en privat utgivarresurs med namnet nginx-publisher i den angivna regionen redigerar publisher_name
du fältet i konfigurationsfilen så att den är unik (t.ex. lägger till ett suffix för slumpmässig sträng), kör build
kommandot igen (ovan) och kör sedan kommandot igen publish
.
Om du fortsätter med att skapa en nätverkstjänstdesign måste du använda det här nya pubilsher-namnet i matrisen resource_element_templates
.
az aosm nfd publish -b cnf-cli-output --definition-type cnf
När kommandot har slutförts kontrollerar du resurserna i publisher-resursgruppen för att granska de skapade komponenterna och artefakterna.