Rychlý start: Publikování kontejneru Nginx jako kontejnerizované síťové funkce (CNF)
Tento rychlý start popisuje, jak pomocí az aosm
rozšíření Azure CLI vytvořit a publikovat základní definici síťové funkce. Jejím účelem je předvést pracovní postup prostředků AOSM (Publisher Azure Operator Service Manager). Základní koncepty, které jsou zde uvedeny, jsou určeny k přípravě uživatelů na vytváření více vzrušujících služeb.
Požadavky
Vyžaduje se účet Azure s aktivním předplatným. Pokud nemáte předplatné Azure, postupujte podle pokynů uvedených tady , abyste si mohli vytvořit účet, než začnete.
Role Přispěvatel a AcrPush pro toto předplatné za účelem vytvoření skupiny prostředků nebo existující skupiny prostředků, ve které máte roli Přispěvatel.
Vytvoření vstupního souboru
Vytvořte vstupní soubor pro publikování definice síťové funkce. Spuštěním následujícího příkazu vygenerujte vstupní konfigurační soubor pro definici síťové funkce (NFD).
az aosm nfd generate-config --definition-type cnf
Spuštění předchozího příkazu vygeneruje soubor cnf-input.jsonc.
Poznámka:
Upravte soubor cnf-input.jsonc. Nahraďte ho hodnotami zobrazenými v následující ukázce. Uložte soubor jako input-cnf-nfd.jsonc.
Poznámka:
Jako zdroje pro vaše image můžete použít několik registrů kontejnerů v rozhraní příkazového řádku AOSM. Image, které se mají zkopírovat z těchto registrů, se vyplní automaticky na základě schématu balíčku Helm. Pokud chcete nakonfigurovat tyto zdrojové registry, vyplňte image_sources
seznam v souboru cnf-input.jsonc. Při použití seznamů ACL musíte mít oprávnění Čtenář/AcrPull. Při použití jiných privátních registrů musíte před spuštěním az aosm nfd build
příkazu provést docker login
ověření u všech registrů jiných než ACR. V tomto rychlém startu používáme docker.io
jako zdrojový registr image. Jedná se o veřejný registr a nevyžaduje ověřování.
Tady je ukázkový soubor input-cnf-nfd.jsonc:
{
// 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.
// You should create this before running the publish command
"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.1.0.tgz",
"default_values": "",
"depends_on": []
}
]
}
- publisher_name – název prostředku publisheru, do kterého chcete svou definici publikovat. Vytvořeno, pokud ještě neexistuje.
- publisher_resource_group_name – skupina prostředků pro prostředek Publisheru. Vytvořeno, pokud ještě neexistuje.
- acr_artifact_store_name – název prostředku úložiště artefaktů Azure Container Registry (ACR). Vytvořeno, pokud ještě neexistuje.
- location – Umístění Azure, které se má použít při vytváření prostředků.
- nf_name – název definice NF.
- version – verze definice NF ve formátu A.B.C.
- image_sources – seznam registrů, ze kterých se mají obrázky načíst.
- helm_packages:
- name – název balíčku Helm.
- path_to_chart – cesta k souboru Helm Chartu na místním disku. Přijímá .tgz, .tar nebo .tar.gz. Používejte oddělovač souborů s lomítkem (/), i když běží ve Windows. Cesta by měla být absolutní nebo cesta vzhledem k umístění
cnf-input.jsonc
souboru. - default_values – cesta k souboru (absolutní nebo relativní
cnf-input.jsonc
) souboru hodnot YAML na místním disku, který se používá místo souboru values.yaml v chartu Helm. - depends_on – Názvy balíčků Helm, na které tento balíček závisí. Pokud neexistují žádné závislosti, ponechejte jako prázdné pole.
Sestavení definice síťové funkce (NFD)
Chcete-li vytvořit definici síťové funkce (NFD), zahajte proces sestavení.
az aosm nfd build -f input-cnf-nfd.jsonc --definition-type cnf
Rozšíření Az CLI AOSM vygeneruje adresář s názvem cnf-cli-output
. Tento adresář obsahuje soubory BICEP definující prostředky AOSM potřebné k publikování NFDV a nahrání imagí potřebných k jeho nasazení do úložiště spravovaného pomocí AOSM. Prozkoumejte vygenerované soubory, abyste lépe porozuměli struktuře definice síťové funkce (NFD).
Adresář nebo soubor | Popis |
---|---|
nfDefinition/deployParameters.json | Definuje schéma parametrů nasazení vyžadovaných k vytvoření síťové funkce (NF) z této verze definice síťové funkce (NFDV). |
nfDefinition/nginxdemo-mappings.json | Mapy parametry nasazení verze definice síťové funkce (NFDV) na hodnoty požadované pro chart Helm. |
nfDefinition/deploy.bicep | Šablona Bicep pro vytvoření samotné verze definice síťové funkce (NFDV). |
artefakty/artifacts.json | Seznam balíčků Helm a imagí kontejnerů vyžadovaných NF |
artifactManifest/deploy.bicep | Šablona Bicep pro vytvoření manifestu artefaktů |
base/deploy.bicep | Šablona Bicep pro vytváření prostředků vydavatele, skupiny definic síťových funkcí a prostředků úložiště artefaktů |
Publikování definice síťové funkce a nahrání artefaktů
Spuštěním následujícího příkazu publikujte definici síťové funkce (NFD) a nahrajte přidružené artefakty:
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 -b cnf-cli-output --definition-type cnf
Po dokončení příkazu zkontrolujte prostředky ve skupině prostředků publisheru a zkontrolujte vytvořené komponenty a artefakty.