Compilações de imagem isoladas do Construtor de Imagens de VM do Azure
Builds de imagem isolados é um recurso do AIB (Construtor de Imagens de VM do Azure). Ele faz a transição do processo principal de personalização/validação de imagem de VM da infraestrutura de plataforma compartilhada para recursos dedicados da ACI (Instâncias de Contêiner do Azure) em sua assinatura, fornecendo isolamento de computação e rede.
Vantagens de Compilações de imagem isoladas
Builds de imagem isolados permitem a defesa em profundidade limitando o acesso à rede da VM de build apenas à sua assinatura. Builds de imagem isolada também fornecem mais transparência, permitindo que sua inspeção do processamento feito pela AIB personalize/valide sua imagem de VM. Além disso, as compilações de imagem isoladas facilitam a exibição de logs de build dinâmicos. Especificamente:
Isolamento de computação: builds de imagem isolados executam grande parte do processamento de construção de imagem em recursos da ACI em sua assinatura, em vez de nos recursos de plataforma compartilhada da AIB. A ACI oferece isolamento de hipervisor para cada grupo de contêineres para assegurar que os contêineres sejam executados isoladamente, sem compartilhar um kernel.
Isolamento de rede: builds de imagem isolados remove toda a comunicação direta do WinRM/ssh de rede entre a VM de build e os componentes de back-end do serviço AIB.
- Se você estiver provisionando um modelo de AIB sem sua própria sub-rede para a VM de build, um recurso de Endereço IP Público não será mais provisionado em seu grupo de recursos de preparo no momento da compilação da imagem.
- Se você estiver provisionando um modelo AIB com uma sub-rede existente para criar VM, um canal de comunicação baseado em Link Privado não será mais configurado entre a VM de build e os recursos da plataforma de back-end da AIB. Em vez disso, o canal de comunicação é configurado entre a ACI e os recursos de VM de build – ambos residem no grupo de recursos de preparo em sua assinatura.
- Iniciando a API versão 2024-02-01, você pode especificar uma segunda sub-rede para implantar a ACI, além da sub-rede para a VM de build. Se especificado, a AIB implantará a ACI nessa sub-rede e não haverá necessidade de a AIB configurar o canal de comunicação baseado em Link Privado entre a ACI e a VM de build. Para obter mais informações sobre a segunda sub-rede, consulte a seção aqui.
Transparência: o AIB tem como base a Packer da HashiCorp. Compilações de imagem isoladas executam a Packer nas ACI em sua assinatura, o que permite inspecionar o recurso das ACI e seus contêineres. Da mesma forma, ter todo o pipeline de comunicação de rede em sua assinatura permite inspecionar todos os recursos de rede, suas configurações e seus subsídios.
Melhor exibição de logs dinâmicos: o AIB grava logs de personalização em uma conta de armazenamento no grupo de recursos de preparo em sua assinatura. Os Builds de Imagem Isolada fornecem outra maneira de seguir os mesmos logs diretamente no portal do Azure, o que pode ser feito navegando até o contêiner da AIB no recurso da ACI.
Observação
Para acessar os logs dinâmicos durante o build da imagem ou os arquivos de log de personalização e validação após a conclusão do build, veja o guia de solução de problemas.
Topologias de rede
Builds de imagem isolada implantam a ACI e a VM de build no grupo de recursos de preparo em sua assinatura. Para que a AIB personalize/valide sua imagem, as instâncias de contêiner em execução na ACI precisam ter um caminho de rede para a VM de build. Com base em suas necessidades e políticas de rede personalizadas, você pode configurar a AIB para usar topologias de rede diferentes para esta finalidade:
Não traga sua própria sub-rede de VM de build
- Você pode selecionar essa topologia não especificando o campo
vnetConfig
no Modelo de Imagem ou especificando o campo, mas sem os subcampossubnetId
econtainerInstanceSubnetId
. - Nesse caso, a AIB implanta uma Rede Virtual no grupo de recursos de preparo, juntamente com duas sub-redes e NSGs (Grupos de Segurança de Rede). Uma das sub-redes é usada para implantar a ACI, enquanto a outra sub-rede é usada para implantar a VM de Build. Os NSGs são configurados para permitir a comunicação entre as duas sub-redes.
- A AIB não implanta um recurso de IP público ou um pipeline de comunicação baseado em link privado nesse caso.
Traga sua própria sub-rede de VM de Build, mas não traga sua própria sub-rede ACI
- Você pode selecionar essa topologia especificando o campo
vnetConfig
junto com o subcamposubnetId
, mas não o subcampocontainerInstanceSubnetId
no Modelo de Imagem. - Nesse caso, a AIB implanta uma Rede Virtual temporária no grupo de recursos de preparo, juntamente com duas sub-redes e NSGs (Grupos de Segurança de Rede). Uma das sub-redes é usada para implantar a ACI, enquanto a outra sub-rede é usada para implantar o recurso de ponto de extremidade privado. A VM de build é implantada em sua sub-rede especificada. Um pipeline de comunicação baseado em link privado que consiste em um ponto de extremidade privado, serviço de link privado, Azure Load Balancer e máquina virtual proxy também é implantado no grupo de recursos de preparo para facilitar a comunicação entre a sub-rede ACI e sua sub-rede de VM de build.
Traga sua própria sub-rede de VM de Build e traga sua própria sub-rede ACI
- Você pode selecionar essa topologia especificando o campo
vnetConfig
juntamente com os subcampossubnetId
&containerInstanceSubnetId
no Modelo de Imagem. Essa opção (e subcampocontainerInstanceSubnetId
) está disponível na versão inicial da API 2024-02-01. Você também pode atualizar seus modelos existentes para usar essa topologia. - Nesse caso, o AIB implanta a VM de build para a sub-rede de VM de build especificada e a ACI para a sub-rede ACI especificada.
- O AIB não implanta nenhum dos recursos de rede no grupo de recursos de preparo, incluindo IP Público, Rede Virtual, sub-redes, Grupos de Segurança de Rede, Ponto de Extremidade Privado, Serviço de Link Privado, Azure Load Balancer e Máquina Virtual proxy. Essa topologia poderá ser usada se você tiver restrições de cota ou políticas que não permitem a implantação desses recursos.
- A sub-rede ACI deve atender a determinadas condições para permitir seu uso com builds de imagem isolada.
Você pode ver detalhes sobre esses campos na referência de modelo. As opções de rede são discutidas em detalhes aqui.
Compatibilidade com versões anteriores
Builds de imagem isolada é uma alteração no nível da plataforma e não afeta as interfaces da AIB. Portanto, seus recursos existentes de Modelo de Imagem e Gatilho continuam funcionando e não há nenhuma alteração na maneira como você implanta novos recursos desses tipos. Você precisa criar novos modelos ou atualizar modelos existentes se quiser usar a topologia de rede, permitindo trazer sua própria sub-rede ACI.
Seus builds de imagem são migrados automaticamente para Builds de Imagem Isolada e você não precisa tomar nenhuma ação para aceitar. Além disso, os logs de personalização continuam disponíveis na conta de armazenamento.
Dependendo da topologia de rede especificada no Modelo de Imagem, você poderá observar alguns novos recursos aparecendo temporariamente no grupo de recursos de preparo (por exemplo, ACI, Rede Virtual, Grupo de Segurança de Rede e Ponto de Extremidade Privado), enquanto alguns outros recursos não aparecem mais (por exemplo, Endereço IP Público). Como anteriormente, esses recursos temporários existem somente durante o build e o AIB os exclui depois disso.
Importante
Certifique-se de que sua assinatura esteja registrada para Microsoft.ContainerInstance provider
:
- CLI do Azure:
az provider register -n Microsoft.ContainerInstance
- PowerShell:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance
Depois de registrar sua assinatura com êxito, verifique se não há políticas do Azure em sua assinatura que negam a implantação de redirecionamentos da ACI. As políticas que permitem apenas um conjunto restrito de tipos de recursos que não incluem a ACI fariam com que os builds de imagem isolada falhassem.
Verifique se sua assinatura também tem uma cota suficiente de recursos necessários para a implantação de recursos da ACI.
Importante
Dependendo da topologia de rede especificada no Modelo de Imagem, a AIB pode precisar implantar recursos relacionados à rede temporária no grupo de recursos de preparo em sua assinatura. Verifique se nenhuma política do Azure nega a implantação desses recursos (Rede Virtual com Sub-redes, Grupo de Segurança de Rede, Ponto de Extremidade Privado) no grupo de recursos.
Se você tiver políticas do Azure aplicando planos de proteção contra DDoS a qualquer Rede Virtual recém-criada, relaxe a política para o grupo de recursos ou verifique se a Identidade Gerenciada de Modelo tem permissões para ingressar no plano. Como alternativa, você pode usar a topologia de rede que não exige a implantação de uma nova Rede Virtual pela AIB.
Importante
Siga todas as práticas recomendadas ao usar a AIB.
Observação
A AIB está em processo de distribuição dessa alteração para todos os locais e clientes. Alguns desses detalhes (especialmente em torno da implantação de novos recursos relacionados à Rede do Azure) podem mudar, pois o processo é ajustado com base na telemetria e nos comentários do serviço. Para obter erros, consulte o guia de solução de problemas.