Szybki start: publikowanie kontenera Nginx jako konteneryzowanej funkcji sieciowej (CNF)

W tym przewodniku Szybki start opisano sposób używania rozszerzenia interfejsu az aosm wiersza polecenia platformy Azure do tworzenia i publikowania podstawowej definicji funkcji sieciowej. Jego celem jest zademonstrowanie przepływu pracy zasobów programu Azure Operator Service Manager (AOSM) wydawcy. Przedstawione tutaj podstawowe pojęcia mają na celu przygotowanie użytkowników do tworzenia bardziej ekscytujących usług.

Wymagania wstępne

Tworzenie pliku wejściowego

Utwórz plik wejściowy do publikowania definicji funkcji sieciowej. Wykonaj następujące polecenie, aby wygenerować plik konfiguracji danych wejściowych dla definicji funkcji sieciowej (NFD).

az aosm nfd generate-config --definition-type cnf

Wykonanie poprzedniego polecenia generuje plik input.json.

Uwaga

Edytuj plik input.json. Zastąp ją wartościami pokazanymi w poniższym przykładzie. Zapisz plik jako input-cnf-nfd.json.

Uwaga

W tym przewodniku Szybki start użyjemy source_local_docker_image. W przypadku dalszych plików CNF możesz dokonać w przyszłości, możesz użyć odwołania do istniejącego rejestru kontenerów platformy Azure, który zawiera obrazy dla systemu plików CNF. Obecnie tylko jeden rekord ACR i przestrzeń nazw jest obsługiwana dla systemu plików CNF. Obrazy, które mają być kopiowane z tego usługi ACR, są wypełniane automatycznie na podstawie schematu pakietu helm. Aby użyć tej opcji w przyszłości, wypełnij source_registry i opcjonalnie source_registry_namespace w pliku input.json. Musisz mieć uprawnienia Czytelnik/AcrPull dla tego usługi ACR.

Oto przykładowy plik input-cnf-nfd.json:

{
    "publisher_name": "nginx-publisher",
    "publisher_resource_group_name": "nginx-publisher-rg",
    "nf_name": "nginx",
    "version": "1.0.0",
    "acr_artifact_store_name": "nginx-nsd-acr",
    "location": "uksouth",
    "images": {
        "source_local_docker_image": "nginx:stable"
    },
    "helm_packages": [
        {
            "name": "nginxdemo",
            "path_to_chart": "nginxdemo-0.1.0.tgz",
            "path_to_mappings": "",
            "depends_on": []
        }
    ]
}
  • publisher_name — nazwa zasobu wydawcy, do którego ma zostać opublikowana definicja. Utworzono, jeśli jeszcze nie istnieje.
  • publisher_resource_group_name — grupa zasobów dla zasobu wydawcy. Utworzono, jeśli jeszcze nie istnieje.
  • acr_artifact_store_name — nazwa zasobu magazynu artefaktów usługi ACR. Utworzono, jeśli jeszcze nie istnieje.
  • location — lokalizacja platformy Azure do użycia podczas tworzenia zasobów.
  • nf_name — nazwa definicji NF.
  • version — wersja definicji NF w formacie A.B.C.
  • obrazy:
    • source_local_docker_image — opcjonalne. Nazwa obrazu źródłowego obrazu platformy Docker z komputera lokalnego. W przypadku ograniczonego przypadku użycia, w którym system plików CNF wymaga tylko jednego obrazu platformy Docker, który istnieje w lokalnym repozytorium platformy Docker.
  • helm_packages:
    • name — nazwa pakietu Helm.
    • path_to_chart — ścieżka pliku programu Helm Chart na dysku lokalnym. Akceptuje plik .tgz, .tar lub .tar.gz. Użyj separatora plików ukośnika systemu Linux (/), nawet jeśli jest uruchomiony w systemie Windows. Ścieżka powinna być ścieżką bezwzględną lub ścieżką względną do lokalizacji input.json pliku.
    • path_to_mappings — ścieżka pliku (bezwzględna lub względna ) input.jsonmapowań wartości na dysku lokalnym, gdzie wybrane wartości są zastępowane symbolami zastępczymi deploymentParameter. Akceptuje plik yaml lub .yml. Jeśli pozostawiono pusty ciąg, plik mapowań wartości jest generowany z każdą wartością zamapowaną na parametr wdrożenia. Użyj pustego ciągu i --interactive polecenia kompilacji, aby interaktywnie wybrać wartości do mapowania.
    • depends_on — nazwy pakietów Helm, od których zależy ten pakiet. Pozostaw pustą tablicę, jeśli nie ma żadnych zależności.

Tworzenie definicji funkcji sieci (NFD)

Aby utworzyć definicję funkcji sieciowej (NFD), zainicjuj proces kompilacji w trybie interaktywnym. Ten tryb umożliwia selektywne uwidacznienie wartości z values.yaml parametrów wdrożeniaParameters.

az aosm nfd build -f input-cnf-nfd.json --definition-type cnf --interactive

W trakcie procesu interakcyjnego można odpowiedzieć za pomocą ciągu "n" (nie) dla wszystkich opcji z wyjątkiem następujących dwóch:

  • Aby uwidocznić parametr serviceAccount_create, odpowiedz na "y" (tak)
  • Aby uwidocznić parametr service_port, odpowiedz na "y" (tak)

Po zakończeniu kompilacji sprawdź wygenerowane pliki, aby lepiej zrozumieć strukturę definicji funkcji sieci (NFD). Te pliki są tworzone:

Katalog/plik opis
configMappings Mapy parametrów wdrożenia dla wersji definicji funkcji sieciowej (NFDV) do wartości wymaganych dla wykresu helm.
generatedValuesMappings Dane wyjściowe yaml trybu interaktywnego, który utworzył configMappings. W razie potrzeby edytuj i ponownie uruchom polecenie.
Schematów Definiuje parametry wdrożenia wymagane do utworzenia funkcji sieciowej (NF) z tej wersji definicji funkcji sieciowej (NFDV).
cnfartifactmanifests.bicep Szablon Bicep do tworzenia manifestu artefaktu.
cnfdefinition.bicep Szablon Bicep do tworzenia samej wersji definicji funkcji sieciowej (NFDV).

Jeśli podczas wyborów interakcyjnych wystąpiły błędy, dostępne są dwie opcje ich poprawienia:

  1. Uruchom ponownie polecenie przy użyciu poprawnych wyborów.
  2. Ręcznie dostosuj wygenerowane mapowania wartości w generatedValuesMappings folderze. Następnie zmodyfikuj path_to_mappings_file element , input.json aby odwołać się do zmodyfikowanej ścieżki pliku.

Publikowanie definicji funkcji sieciowej i przekazywanie artefaktów

Wykonaj następujące polecenie, aby opublikować definicję funkcji sieciowej (NFD) i przekazać skojarzone artefakty:

az aosm nfd publish -f input-cnf-nfd.json --definition-type cnf

Po zakończeniu polecenia sprawdź zasoby w grupie zasobów wydawcy, aby przejrzeć utworzone składniki i artefakty.

Następne kroki