Share via


Inicio rápido: Publicación del contenedor de Nginx como función de red en contenedor (CNF)

En este inicio rápido se describe cómo usar la extensión de la CLI de Azure az aosm para crear y publicar una definición básica de función de red. Su propósito es demostrar el flujo de trabajo de los recursos de Azure Operator Service Manager (AOSM) del publicador. Los conceptos básicos que se presentan aquí están diseñados para preparar a los usuarios para crear servicios más emocionantes.

Requisitos previos

Crear un archivo de entrada

Cree un archivo de entrada para publicar la definición de función de red. Ejecute el comando siguiente para generar el archivo de configuración de entrada para la definición de función de red (NFD).

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

La ejecución del comando anterior crea un archivo input.json.

Nota:

Edite el archivo input.json. Reemplácelo por los valores que se muestran en el ejemplo siguiente. Guarde el archivo como input-cnf-nfd.json.

Nota:

Para este inicio rápido, vamos a usar source_local_docker_image. Para más CNF, que puede realizar en el futuro, tiene la opción de usar una referencia a una instancia de Azure Container Registry existente que contiene las imágenes del CNF. Actualmente, solo se admite un ACR y un espacio de nombres por CNF. Las imágenes que se van a copiar de esta instancia de ACR se rellenan automáticamente en función del esquema del paquete de Helm. Para usar esta opción en el futuro, rellene source_registry y, opcionalmente, source_registry_namespace en el archivo input.json. Debe tener permisos de lector/AcrPull en esta instancia de ACR.

Este es el archivo input-cnf-nfd.json de ejemplo:

{
    "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: Nombre del recurso del publicador en el que desea que se publique la definición. Se crea si aún no existe.
  • publisher_resource_group_name: Grupo de recursos para el recurso del publicador. Se crea si aún no existe.
  • acr_artifact_store_name: Nombre del recurso de almacén de Artifact de ACR. Se crea si aún no existe.
  • Ubicación: La ubicación de Azure que se utilizará al crear recursos.
  • nf_name: El nombre de la definición de NF.
  • Versión: La versión de la definición NF en formato A.B.C.
  • imágenes:
    • source_local_docker_image: Opcional. Nombre de la imagen de Docker de origen de la máquina local. Para casos de uso limitados en los que el CNF solo requiere una sola imagen de Docker que exista en el repositorio de Docker local.
  • helm_packages:
    • Nombre: El nombre del paquete Helm.
    • path_to_chart: La ruta del archivo del gráfico de Helm en el disco local. Acepta .tgz, .tar o .tar.gz. Use el separador de archivos de barra diagonal de Linux (/) incluso si se ejecuta en Windows. La ruta de acceso debe ser una ruta de acceso absoluta o la ruta de acceso relativa a la ubicación del archivo input.json.
    • path_to_mappings: La ruta del archivo (absoluta o relativa a input.json) de las asignaciones de valores en el disco local donde los valores elegidos se reemplazan por los marcadores de posición deploymentParameter. Acepta .yaml o .yml. Si se deja como una cadena en blanco, se genera un archivo de asignaciones de valores con cada valor asignado a un parámetro de implementación. Utilice una cadena en blanco y --interactive en el comando build para elegir interactivamente qué valores asignar.
    • depends_on: Nombres de los paquetes de Helm de los que depende este paquete. Déjelo como una matriz vacía si no hay dependencias.

Compilar la definición de función de red (NFD)

Para construir la definición de función de red (NFD), inicie el proceso de compilación en el modo interactivo. Este modo permite exponer de forma selectiva valores de values.yaml como deploymentParameters.

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

Durante el proceso interactivo, puede responder con "n" (no) para todas las opciones, excepto las dos siguientes:

  • Para exponer el parámetro serviceAccount_create, responda con "y" (sí)
  • Para exponer el parámetro service_port, responda con "y" (sí)

Una vez completada la compilación, examine los archivos generados para comprender mejor la estructura de definición de función de red (NFD). Se crean estos archivos:

Directorio o archivo Descripción
configMappings Asigna los parámetros de implementación de la Versión de definición de función de red (NFDV) a los valores necesarios para el gráfico de Helm.
generatedValuesMappings Salida de yaml del modo interactivo que creó configMappings. Si es necesario, edite y vuelva a ejecutar el comando.
esquemas Define los parámetros de implementación necesarios para crear una función de red (NF) a partir de esta versión de definición de función de red (NFDV).
cnfartifactmanifests.bicep Plantilla de Bicep para crear el manifiesto del artefacto.
cnfdefinition.bicep Plantilla de Bicep para crear la propia versión de definición de función de red (NFDV).

Si se realizaron errores durante las opciones interactivas, hay dos opciones para corregirlos:

  1. Vuelva a ejecutar el comando con las selecciones correctas.
  2. Ajuste manualmente las asignaciones de valores generados dentro de la carpeta generatedValuesMappings. A continuación, edite path_to_mappings_file en input.json para hacer referencia a la ruta de acceso del archivo modificado.

Publicar la definición de función de red y cargar artefactos

Ejecute el siguiente comando para publicar la definición de función de red (NFD) y cargar los artefactos asociados:

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

Cuando se complete el comando, inspeccione los recursos del grupo de recursos del publicador para revisar los componentes y artefactos creados.

Pasos siguientes