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.

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.

Další kroky