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.
Existující skupina prostředků, ve které máte roli Přispěvatel, nebo roli Přispěvatel v tomto předplatném, aby rozšíření rozhraní příkazového řádku AOSM mohlo vytvořit skupinu prostředků.
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.
Pokud používáte existující skupinu prostředků, změňte publisher_resource_group_name
pole tak, aby odpovídalo.
Tip
Jako zdroje pro 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 vyberou automaticky na základě schématu balíčku Helm. Zdrojové registry jsou nakonfigurované v image_sources
seznamu souboru cnf-input.jsonc.
Při použití seznamů ACL musíte mít role Čtenář a AcrPull v ACR. Pokud používáte registry jiného typu než ACR, musíte před spuštěním příkazu spustit docker login
ověřování u každého privátního az aosm nfd build
registru.
V tomto rychlém startu používáme docker.io
jako zdrojový registr image. Jedná se o veřejný registr, který 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.
// 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 – 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 | Mapuje parametry nasazení pro verzi 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.
Poznámka:
Názvy vydavatelů musí být v rámci oblasti jedinečné. Je docela pravděpodobné, že soubor nginx-publisher definovaný v ukázkovém konfiguračním souboru již existuje.
Pokud se zobrazí chyba s názvem "Prostředek privátního vydavatele s názvem nginx-publisher již existuje v zadané oblasti", upravte publisher_name
pole v konfiguračním souboru tak, aby bylo jedinečné (např. přidejte náhodnou příponu řetězce), znovu spusťte build
příkaz (výše) a pak tento publish
příkaz spusťte znovu.
Pokud budete pokračovat vytvořením návrhu síťové služby, budete muset v poli použít tento nový název pubilšeru resource_element_templates
.
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.