Compartir a través de


Obtenga información sobre cómo la extensión de la CLI de Azure Operator Service Manager (AOSM) detecta imágenes de contenedor en las ACR de origen basadas en la configuración del gráfico de Helm

En este documento se explica cómo la extensión AOSM de la CLI de Azure detecta imágenes en gráficos de Helm, las extrae de un registro de contenedor y las carga en un almacén de artefactos de AOSM. La extensión AOSM de la CLI de Azure admite Azure Container Registry (ACR) y cualquier registro de contenedor que admita la API de Docker.

Detección de imágenes

El archivo de entrada de la versión de definición de funciones de red (NFDV) de la CLI de Azure AOSM, generado por az aosm nfd generate-config --definition-type cnf, contiene un parámetro que especifica los registros de origen (y, opcionalmente, los espacios de nombres) las consultas de la CLI de AOSM durante la incorporación de imágenes de contenedor.

  // 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": [],

"image_sources" es una matriz de cadenas. Cada cadena es una referencia a un registro de contenedor y, opcionalmente, un espacio de nombres en ese registro.

La extensión AOSM de la CLI de Az:

  • Analiza los archivos de definición de Kubernetes generados por helm template para detectar las referencias de imagen de contenedor.
  • Busca en los registros y espacios de nombres incluidos en la matriz "image_sources" para las referencias de la imagen de contenedor.
  • Copia las imágenes de los registros de origen en el almacén de artefactos de AOSM.

Importante

La CLI de AOSM requiere que las imágenes del registro de origen coincidan con la estructura del espacio de nombres escrita en el gráfico de Helm. Por ejemplo, una imagen incluida en un gráfico de Helm como core/contoso-a:1.0.0 debe estar disponible en el registro de origen en una ruta de acceso que termine en core/contoso-a:1.0.0. Cualquier prefijo adicional debe incluirse en el "image_sources" parámetro en el cnf-input.jsonc archivo generado por el comando az aosm nfd generate-config --definition-type cnf.

Ejemplo práctico

En este ejemplo se describe una función ficticia de red en contenedores (CNF). Este CNF se crea de tres imágenes que proporcionan la función PRINCIPAL de CNF y una imagen de prueba que se puede implementar para ejecutar consultas de prueba en el CNF. El registro de origen de las imágenes es un ACR denominado myregistry. En este ejemplo, incorporamos las cuatro imágenes.

El campo "image_sources" del archivo de entrada NFDV se establece de la siguiente manera:

  // 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": ["myregistry.azurecr.io"],

La salida de helm template en los gráficos de Helm para este CNF proporciona cuatro líneas de imagen en la definición de implementación de Kubernetes.

image: repository/release/contoso-a:1.0.0
image: repository/release/contoso-b:1.0.0
image: repository/release/contoso-c:1.0.0
image: repository/test-release/contoso-test:1.0.0

La extensión AOSM de la CLI de Azure toma las líneas de imagen anteriores y quita el repository (AOSM sobrescribe el repositorio con el nuevo registro que respalda el almacén de artefactos de AOSM). A continuación, la extensión AOSM de la CLI de Azure busca las imágenes de myregistry.azurecr.io/release/contoso-a:1.0.0, myregistry.azurecr.io/release/contoso-b:1.0.0, myregistry.azurecr.io/release/contoso-c:1.0.0y myregistry.azurecr.io/test-release/contoso-test:1.0.0. Las imágenes deben estar disponibles en estas rutas de acceso.

Espaciado de nombres

La extensión Azure CLI de AOSM también admite el espaciado de nombres de imágenes en los registros de contenedores de origen. Por ejemplo, la contoso-test imagen de podría cargarse en test/test-release/contoso-test:1.0.0 el registro de origen. En este caso, el prefijo adicional, test, debe configurarse en el "image_sources" parámetro en el archivo de entrada NFDV.

  // 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": ["myregistry.azurecr.io", "myregistry.azurecr.io/test"],

La extensión de la CLI de Azure AOSM busca las imágenes de myregistry.azurecr.io, donde detecta contoso-a, contoso-b y contoso-c. A continuación, busque en myregistry.azurecr.io/test, donde detecta contoso-test.

Pasos siguientes