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

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.

Další kroky