Share via


Guida introduttiva: Pubblicare un contenitore Nginx come funzione di rete in contenitori (CNF)

Questa guida introduttiva descrive come usare l'estensione dell'interfaccia della az aosm riga di comando di Azure per creare e pubblicare una definizione di funzione di rete di base. Lo scopo è illustrare il flusso di lavoro delle risorse di Azure Operator Service Manager (AOSM) del server di pubblicazione. I concetti di base presentati qui sono destinati a preparare gli utenti a creare servizi più interessanti.

Prerequisiti

Creare un file di input

Creare un file di input per la pubblicazione della definizione di funzione di rete. Eseguire il comando seguente per generare il file di configurazione di input per la definizione della funzione di rete (NFD).

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

L'esecuzione del comando precedente genera un file input.json.

Nota

Modificare il file input.json. Sostituirlo con i valori mostrati nell'esempio seguente. Salvare il file come input-cnf-nfd.json.

Nota

Per questa guida introduttiva si userà source_local_docker_image. Per ulteriori cnfs che potresti fare in futuro, hai la possibilità di usare un riferimento a un Registro Azure Container esistente che contiene le immagini per il tuo CNF. Attualmente, è supportato un solo record di controllo di accesso e spazio dei nomi per CNF. Le immagini da copiare da questo Registro Azure Container vengono popolate automaticamente in base allo schema del pacchetto Helm. Per usare questa opzione in futuro, compilare source_registry e facoltativamente source_registry_namespace nel file input.json. Per questo Registro Azure Container è necessario disporre delle autorizzazioni Reader/AcrPull.

Ecco il file input-cnf-nfd.json di esempio:

{
    "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: nome della risorsa del server di pubblicazione in cui si vuole pubblicare la definizione. Creato se non esiste già.
  • publisher_resource_group_name : gruppo di risorse per la risorsa del server di pubblicazione. Creato se non esiste già.
  • acr_artifact_store_name : nome della risorsa dell'archivio artefatti del Registro Azure Container. Creato se non esiste già.
  • location : la località di Azure da usare durante la creazione di risorse.
  • nf_name: nome della definizione NF.
  • version : versione della definizione NF in formato A.B.C.
  • immagini:
    • source_local_docker_image - Facoltativo. Nome dell'immagine Docker di origine dal computer locale. Per casi d'uso limitati in cui il CNF richiede solo una singola immagine Docker esistente nel repository Docker locale.
  • helm_packages:
    • name : nome del pacchetto Helm.
    • path_to_chart: percorso del file del grafico Helm sul disco locale. Accetta .tgz, .tar o .tar.gz. Usare il separatore di file barra (/) linux anche se è in esecuzione in Windows. Il percorso deve essere un percorso assoluto o il percorso relativo al percorso del input.json file.
    • path_to_mappings : percorso del file (assoluto o relativo a input.json) dei mapping dei valori nel disco locale in cui i valori scelti vengono sostituiti con i segnaposto deploymentParameter. Accetta .yaml o .yml. Se lasciato come stringa vuota, viene generato un file di mapping dei valori con ogni valore mappato a un parametro di distribuzione. Usare una stringa vuota e --interactive nel comando di compilazione per scegliere in modo interattivo i valori da mappare.
    • depends_on: i nomi dei pacchetti Helm da cui dipende questo pacchetto. Lasciare una matrice vuota se non sono presenti dipendenze.

Compilare la definizione di funzione di rete (NFD)

Per costruire la definizione della funzione di rete (NFD), avviare il processo di compilazione in modalità interattiva. Questa modalità consente di esporre in modo selettivo i valori di values.yaml come deploymentParameters.

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

Durante il processo interattivo, è possibile rispondere con "n" (no) per tutte le opzioni, ad eccezione dei due seguenti:

  • Per esporre il parametro serviceAccount_create, rispondere con 'y' (sì)
  • Per esporre il parametro service_port, rispondere con 'y' (sì)

Al termine della compilazione, esaminare i file generati per ottenere una migliore comprensione della struttura NFD (Network Function Definition). Questi file vengono creati:

Directory/File Descrizione
configMappings Mappe i parametri di distribuzione per Network Function Definition Version (NFDV) ai valori necessari per il grafico helm.
generatedValuesMappings Output yaml della modalità interattiva che ha creato configMappings. Modificare ed eseguire di nuovo il comando, se necessario.
schemas Definisce i parametri di distribuzione necessari per creare una funzione di rete (NF) da questa versione di definizione della funzione di rete (NFDV).
cnfartifactmanifests.bicep Modello Bicep per la creazione del manifesto dell'artefatto.
cnfdefinition.bicep Modello Bicep per la creazione della versione NFDV (Network Function Definition Version).

Se si sono verificati errori durante le scelte interattive, sono disponibili due opzioni per correggerle:

  1. Eseguire di nuovo il comando con le selezioni corrette.
  2. Modificare manualmente i mapping dei valori generati all'interno della generatedValuesMappings cartella. Modificare quindi in path_to_mappings_fileinput.json per fare riferimento al percorso del file modificato.

Pubblicare la definizione della funzione di rete e caricare gli artefatti

Eseguire il comando seguente per pubblicare la definizione della funzione di rete (NFD) e caricare gli artefatti associati:

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

Al termine del comando, esaminare le risorse all'interno del gruppo di risorse del server di pubblicazione per esaminare i componenti e gli artefatti creati.

Passaggi successivi