Compilaciones de imágenes aisladas para Azure VM Image Builder
Las compilaciones de imágenes aisladas son una característica de Azure VM Image Builder (AIB). Realiza la transición del proceso principal de personalización y validación de imágenes de máquina virtual desde la infraestructura de plataforma compartida a recursos dedicados de Azure Container Instances (ACI) en la suscripción, lo que proporciona aislamiento de proceso y red.
Ventajas de las compilaciones de imágenes aisladas
Las compilaciones de imágenes aisladas permiten la defensa en profundidad limitando el acceso de red de la máquina virtual de compilación a solo la suscripción. Las compilaciones de imágenes aisladas también proporcionan más transparencia al permitir que la inspección del procesamiento realizado por AIB personalice o valide la imagen de máquina virtual. Además, las compilaciones de imágenes aisladas facilitan la visualización de registros de compilación en directo. Específicamente:
Aislamiento de proceso: las compilaciones de imágenes aisladas realizan una parte importante del procesamiento de la creación de imágenes en los recursos de ACI de la suscripción en lugar de en los recursos de la plataforma compartida de AIB. ACI proporciona aislamiento de hipervisor para cada grupo de contenedores a fin de garantizar que los contenedores se ejecuten de forma aislada sin compartir un kernel.
Aislamiento de red: las compilaciones de imágenes aisladas quitan toda la comunicación directa de WinRM/SSH de red entre la máquina virtual de compilación y los componentes de back-end del servicio de AIB.
- Si va a aprovisionar una plantilla de AIB sin su propia subred para la máquina virtual de compilación, ya no se aprovisiona un recurso de dirección IP pública en el grupo de recursos de almacenamiento provisional en tiempo de compilación de la imagen.
- Si va a aprovisionar una plantilla de AIB con una subred existente para la máquina virtual de compilación, ya no se configura un canal de comunicación basado en Private Link entre la máquina virtual de compilación y los recursos de back-end de la plataforma de AIB. En su lugar, el canal de comunicación se configura entre la ACI y los recursos de la máquina virtual de compilación, que residen en el grupo de recursos de almacenamiento provisional de la suscripción.
- A partir de la versión de 2024-02-01 de la API, puede especificar una segunda subred para implementar la ACI, además de la subred para la máquina virtual de compilación. Si se especifica, AIB implementa la ACI en esta subred y no es necesario que AIB configure el canal de comunicación basado en Private Link entre la ACI y la máquina virtual de compilación. Para obtener más información sobre la segunda subred, consulte la sección aquí.
Transparencia: AIB se basa en HashiCorp Packer. Las compilaciones de imágenes aisladas ejecutan Packer en la ACI de la suscripción, lo que le permite inspeccionar el recurso de ACI y sus contenedores. De forma similar, tener toda la canalización de comunicación de red en la suscripción le permite inspeccionar todos los recursos de red, su configuración y sus asignaciones.
Visualización mejor de los registros en directo: AIB escribe registros de personalización en una cuenta de almacenamiento en el grupo de recursos de almacenamiento provisional de la suscripción. Las compilaciones de imágenes aisladas proporcionan otra forma de seguir los mismos registros directamente en Azure Portal, que puede realizarse yendo al contenedor de AIB en el recurso de la ACI.
Nota:
Para acceder a los registros en directo durante la compilación de la imagen o los archivos de registro de personalización y validación una vez completada la compilación, consulte la guía de solución de problemas.
Topologías de red
Las compilaciones de imágenes aisladas implementan la ACI y la máquina virtual de compilación en el grupo de recursos de almacenamiento provisional de la suscripción. Para que AIB personalice o valide la imagen, las instancias de contenedor que se ejecutan en ACI deben tener una ruta de acceso de red a la máquina virtual de compilación. En función de las directivas y las necesidades de red personalizadas, puede configurar AIB para que use diferentes topologías de red para este propósito:
No traiga su propia subred de máquina virtual de compilación
- Puede seleccionar esta topología al no especificar el campo
vnetConfig
en la plantilla de imagen o especificando el campo, pero sin los subcampossubnetId
ycontainerInstanceSubnetId
. - En este caso, AIB implementa una red virtual en el grupo de recursos de almacenamiento provisional junto con dos subredes y grupos de seguridad de red (NSG). Una de las subredes se usa para implementar la ACI, mientras que la otra subred se usa para implementar la máquina virtual de compilación. Los grupos de seguridad de red están configurados para permitir la comunicación entre las dos subredes.
- AIB no implementa un recurso de dirección IP pública ni una canalización de comunicación basada en Private Link en este caso.
Traiga su propia subred de máquina virtual de compilación, pero no traiga su propia subred de ACI
- Puede seleccionar esta topología especificando el campo
vnetConfig
junto con el subcamposubnetId
, pero no el subcampocontainerInstanceSubnetId
en la plantilla de imagen. - En este caso, AIB implementa una red virtual temporal en el grupo de recursos de almacenamiento provisional junto con dos subredes y grupos de seguridad de red (NSG). Una de las subredes se usa para implementar la ACI, mientras que la otra subred se usa para implementar el recurso de punto de conexión privado. La máquina virtual de compilación se implementa en la subred especificada. Una canalización de comunicación basada en Private Link que consta de un punto de conexión privado, un servicio Private Link y Azure Load Balancer, y una máquina virtual proxy también se implementa en el grupo de recursos de almacenamiento provisional para facilitar la comunicación entre la subred de ACI y la subred de la máquina virtual de compilación.
Traiga su propia subred de máquina virtual de compilación y traiga su propia subred de ACI
- Puede seleccionar esta topología especificando el campo de
vnetConfig
junto con los subcampossubnetId
ycontainerInstanceSubnetId
en la plantilla de imagen. Esta opción (y el subcampocontainerInstanceSubnetId
) está disponible a partir de la versión de 2024-02-01 de la API. También puede actualizar las plantillas existentes para usar esta topología. - En este caso, AIB implementa la máquina virtual de compilación en la subred de la máquina virtual de compilación especificada y ACI en la subred de la ACI especificada.
- AIB no implementa ninguno de los recursos de red en el grupo de recursos de almacenamiento provisional, incluida la dirección IP pública, la red virtual, las subredes, los grupos de seguridad de red, el punto de conexión privado, el servicio Private Link, Azure Load Balancer y la máquina virtual de proxy. Esta topología se puede usar si tiene restricciones de cuota o directivas que no permiten la implementación de estos recursos.
- La subred de la ACI debe cumplir ciertas condiciones para permitir su uso con compilaciones de imágenes aisladas.
Puede ver detalles sobre estos campos en la referencia de plantilla. Las opciones de red se describen con detalle aquí.
Compatibilidad con versiones anteriores
Las compilaciones de imágenes aisladas son un cambio de nivel de plataforma y no afectan a las interfaces de AIB. Por lo tanto, sus recursos existentes de plantillas de imágenes y desencadenadores continúan funcionando y no hay ningún cambio en la forma en que implementa nuevos recursos de estos tipos. Debe crear nuevas plantillas o actualizar las plantillas existentes si desea usar la topología de red que permite traer su propia subred de ACI.
Las compilaciones de imágenes se migran automáticamente a compilaciones de imágenes aisladas y no tiene que realizar ninguna acción para participar. También, los registros de personalización siguen disponibles en la cuenta de almacenamiento.
En función de la topología de red especificada en la plantilla de imagen, es posible que observe que algunos recursos nuevos aparecen temporalmente en el grupo de recursos de almacenamiento provisional (por ejemplo, ACI, red virtual, grupo de seguridad de red y punto de conexión privado), mientras que otros recursos ya no aparecen (por ejemplo, dirección IP pública). Como antes, estos recursos temporales solo existen durante la compilación y AIB los elimina después.
Importante
Asegúrese de que la suscripción está registrada para Microsoft.ContainerInstance provider
:
- CLI de Azure:
az provider register -n Microsoft.ContainerInstance
- PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Después de registrar correctamente la suscripción, asegúrese de que no haya ninguna directiva de Azure en la suscripción que deniegue la implementación de los recursos de ACI. Las directivas que permiten solo un conjunto restringido de tipos de recursos que no incluyen ACI provocarían un error en las compilaciones de imágenes aisladas.
Asegúrese de que la suscripción también tenga una cuota de recursos suficiente para la implementación de recursos de ACI.
Importante
En función de la topología de red especificada en la plantilla de imagen, es posible que AIB tenga que implementar recursos temporales relacionados con las redes en el grupo de recursos de almacenamiento provisional de la suscripción. Asegúrese de que ninguna directiva de Azure deniegue la implementación de estos recursos (Virtual Network con subredes, grupo de seguridad de red, punto de conexión privado) en el grupo de recursos.
Si tiene directivas de Azure que apliquen planes de protección contra DDoS a cualquier Virtual Network recién creada, puede relajar la directiva para el grupo de recursos o asegurarse de que la identidad administrada de plantilla tiene permisos para unirse al plan. Como alternativa, puede usar la topología de red que no requiere la implementación de una nueva red virtual de AIB.
Importante
Asegúrese de seguir todos los procedimientos recomendados mientras usa AIB.
Nota:
AIB está en proceso de implementar este cambio en todas las ubicaciones y clientes. Algunos de estos detalles (especialmente en cuanto a la implementación de nuevos recursos relacionados con redes) pueden cambiar, ya que el proceso está ajustado en función de la telemetría y los comentarios del servicio. Para ver los errores, consulte la guía de solución de problemas.