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
Se requiere una cuenta de Azure con una suscripción activa. Si no tiene una suscripción de Azure, siga las instrucciones que se indican aquí : Comenzar gratis para crear una cuenta antes de comenzar.
Los roles Colaborador y AcrPush de esta suscripción para crear un grupo de recursos o un grupo de recursos existente en el que tenga el rol Colaborador.
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:
- Vuelva a ejecutar el comando con las selecciones correctas.
- Ajuste manualmente las asignaciones de valores generados dentro de la carpeta
generatedValuesMappings
. A continuación, editepath_to_mappings_file
eninput.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.