Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: ✔️ Linux VMs ✔️ Conjuntos de escala flexível
O Azure VM Image Builder (AIB) implementa uma Instância de Container Azure (ACI) no grupo de recursos de staging na sua subscrição. O ACI deve estar associado a uma subrede numa rede virtual Azure (VNet). O código de serviço AIB a correr no ACI implementa uma máquina virtual de compilação (VM de compilação) no grupo de recursos de staging para personalizar a sua imagem, e a VM de compilação deve ser colocada numa sub-rede separada. Para personalizar e validar a sua imagem, o ACI deve ter conectividade de rede à máquina virtual de compilação. Com base nas suas necessidades de rede e políticas organizacionais, pode configurar o AIB para usar diferentes topologias de rede. Podes escolher trazer ambas as sub-redes, uma sub-rede ou nenhuma. Para recomendações, consulte Melhores Práticas para o Azure VM Image Builder.
Topologias de rede
Não traga a sua própria sub-rede Build VM nem a sub-rede ACI
- Pode selecionar esta topologia não especificando o campo
vnetConfigno Modelo de Imagem ou especificando o campo sem os subcampossubnetIdecontainerInstanceSubnetId. - Se não especificar nenhuma sub-rede, o AIB implementa uma rede virtual Azure (VNet) no grupo de recursos de staging com duas sub-redes: uma para a Azure Container Instance e outra para a VM de compilação. Ambas as sub-redes estão associadas a um grupo de segurança de rede (NSG) que inclui regras padrão, permitindo ainda assim a conectividade direta de linha de visão necessária para personalização. A VM de build também é implementada com um recurso de interface de rede (e outros recursos não diretamente relacionados com rede, como disco gerido). Após a conclusão da compilação, a VM de compilação e os recursos de rede são eliminados.
Traga a sua própria sub-rede Build VM e traga a sua própria sub-rede ACI
- No modelo de imagem, pode selecionar esta topologia especificando o campo
vnetConfigcom os subcampossubnetIdecontainerInstanceSubnetId. Esta opção, incluindo ocontainerInstanceSubnetIdsubcampo, está disponível a partir da versão da API 2024-02-01. Também pode atualizar os modelos existentes para usar esta topologia. - Nesta topologia, o AIB implementa a máquina virtual de compilação na sub-rede de VM de compilação especificada e o ACI na sub-rede ACI especificada. Como as sub-redes já são fornecidas, a AIB não implementa uma rede virtual, sub-redes ou um grupo de segurança de rede. Esta topologia é útil quando restrições de quotas ou políticas impedem a implementação destes recursos. A VM de build pode aceder a recursos acessíveis a partir da sua rede virtual, e também pode criar uma rede virtual isolada que não está ligada a nenhuma outra rede virtual. A sub-rede ACI deve satisfazer os pré-requisitos para construções de imagens isoladas. Para detalhes sobre estes campos, consulte a referência do modelo.
- Esta topologia é a opção recomendada para a maioria dos cenários porque lhe dá controlo total sobre ambas as sub-redes, simplifica a configuração e a configuração da rede, pode reduzir os custos globais de implementação e ajuda a alinhar a rede com os requisitos de segurança e governação da sua organização.
Leva a tua própria sub-rede de máquina virtual de build, mas não a tua própria sub-rede ACI.
- Pode selecionar esta topologia especificando o
vnetConfigcampo com osubnetIdsubcampo, omitindo ocontainerInstanceSubnetIdsubcampo no modelo da imagem. - Nesta topologia, o AIB implementa uma rede virtual temporária no grupo de recursos de staging com duas sub-redes, cada uma associada a um grupo de segurança de rede (NSG). Uma sub-rede aloja o ACI, e a outra aloja o recurso de endpoint privado. A VM de compilação é implementada na sub-rede especificada. Para permitir a comunicação entre a sub-rede ACI e a sua sub-rede de VM de build, o AIB também implementa um caminho de comunicação baseado no Private Link no grupo de recursos de staging que inclui um endpoint privado, o serviço Private Link, o Balanceador de Carga do Azure, interfaces de rede e uma máquina virtual proxy. Os recursos e configurações exatos variam ligeiramente dependendo se está a personalizar uma imagem Windows ou uma imagem Linux.
- Esta topologia geralmente não é recomendada para a maioria dos cenários porque pode aumentar os custos de implementação, exigir mais configuração operacional e de configuração, e introduzir componentes adicionais que tornam o pipeline de ponta a ponta mais sensível a falhas.
Para exemplos desta topologia, veja os seguintes artigos:
- Use o Azure VM Image Builder para VMs Windows, permitindo o acesso a uma rede virtual Azure existente
- Use o Azure VM Image Builder para VMs Linux permitindo o acesso a uma rede virtual Azure existente
O que é a Ligação Privada do Azure?
O Azure Private Link fornece conectividade privada de uma rede virtual para a plataforma Azure como serviço (PaaS), ou para serviços de propriedade do cliente ou parceiros da Microsoft. Simplifica a arquitetura de rede e assegura a conectividade entre os endpoints Azure ao eliminar a exposição de dados à internet pública. O Enlace Privado requer um endereço IP da rede virtual e sub-rede especificadas. Atualmente, o Azure não suporta políticas de rede nestes endereços IP, por isso deve desativar as políticas de rede na sub-rede. Para mais informações, consulte a documentação do Enlace Privado.
Porque é que implementar uma VM proxy?
Quando uma VM sem IP público está atrás de um balanceador de carga interno, não tem acesso à internet. O balanceador de carga usado para a rede virtual é interno. A VM proxy permite o acesso à internet para a VM de compilação durante as compilações, e o AIB usa a VM proxy para enviar comandos entre o serviço e a VM de compilação. Pode usar os grupos de segurança de rede associados para restringir o acesso à máquina virtual de compilação. O tráfego do ACI atravessa o link privado até o balanceador de carga. O balanceador de carga comunica com a VM proxy na porta 60001 para Linux, ou na porta 60000 para Windows. O proxy encaminha comandos para a VM de compilação na porta 22 para Linux, ou para a porta 5986 para Windows. Por defeito, o tamanho da VM proxy implementada é A1_v2 Standard, mas pode alterar o tamanho. Para mais detalhes, consulte a referência do modelo.
Lista de verificação para usar a sua rede virtual
- Permitir que o Balanceador de Carga do Azure comunique com a VM proxy num grupo de segurança de rede.
- Desative a política de serviço privado na sub-rede.
- Permitir que o VM Image Builder crie um balanceador de carga e adicione VMs à rede virtual.
- Permitir que o VM Image Builder leia e escreva imagens de origem e crie imagens.
- Certifique-se de que está a usar uma rede virtual na mesma região da região de serviço do VM Image Builder.
Considerações adicionais
Permissões necessárias para uma rede virtual existente
O VM Image Builder requer permissões específicas para usar uma rede virtual existente. Para mais informações, consulte Configurar permissões Azure VM Image Builder usando a CLI do Azure ou Configurar permissões Azure VM Image Builder usando PowerShell.
Observação
A rede virtual deve estar na mesma região da região do serviço VM Image Builder.
Importante
O serviço Azure VM Image Builder modifica a configuração de ligação WinRM em todas as versões Windows para usar HTTPS na porta 5986 em vez da porta HTTP padrão na 5985. Esta alteração de configuração pode afetar fluxos de trabalho que dependem da comunicação do WinRM.
Modelo de conectividade
O AIB não implementa um IP público para conectividade direta, e o componente de serviço AIB que corre na subscrição da plataforma não tem conectividade de rede ao ACI ou à VM de compilação. Apenas o componente AIB que corre no ACI tem conectividade à VM de build para realizar a personalização.
Aceder a contas de armazenamento protegidas por firewalls
Se o seu modelo de imagem referenciar artefactos (scripts ou ficheiros) armazenados em contas do Armazenamento do Azure protegidas por firewalls de rede, deve configurar a sua rede para permitir que o AIB aceda a essas contas de armazenamento. Este requisito aplica-se aos artefactos referenciados através das propriedades scriptUri ou fileUri nos personalizadores do seu modelo de imagem.
Para permitir o acesso, utilize a topologia Bring your own Build VM subnet and ACI subnet e configure a firewall da conta de armazenamento para permitir tráfego proveniente da sub-rede ACI.
Configurar o acesso ao firewall da conta de armazenamento
Siga estes passos para configurar o firewall da sua conta de armazenamento para funcionar com AIB:
Usa a sub-rede Bring your Own Build VM e a topologia de sub-rede ACI. Especifique ambos os campos
subnetIdecontainerInstanceSubnetIdna secçãovnetConfigdo seu modelo de imagem. Esta topologia está disponível a partir da versão API 2024-02-01.Delegue a sub-rede ACI ao Azure Container Instances. Delegar a sub-rede ACI a
Microsoft.ContainerInstance/containerGroups. Para mais informações, consulte Delegar uma subrede ao Azure Container Instances.Permita listar a sub-rede ACI no firewall da conta de armazenamento. Nas definições de rede da conta de armazenamento, adicione a sub-rede ACI como uma rede virtual permitida. Esta ação permite que a instância do contentor do AIB aceda à conta de armazenamento através do firewall.
Importante
A inclusão, com base em IP, dos endereços IP do serviço AIB nas listas de permissões dos firewalls das contas de armazenamento não é uma configuração suportada. Utilize a listagem de permissão baseada em subredes, conforme descrito nesta secção, para garantir acesso fiável a contas de armazenamento protegidas por firewall.
Observação
A sub-rede ACI e a conta de armazenamento devem ser aceitáveis entre si através da rede. Se estiverem em redes virtuais diferentes, certifique-se de que as redes virtuais estão emparelhadas ou ligadas de outra forma.
Combinações de sub-redes suportadas
Pode configurar ambas as sub-redes (subnetId e containerInstanceSubnetId) ou apenas a sub-rede da VM de build (subnetId). Uma configuração que especifique apenas a sub-rede ACI (containerInstanceSubnetId) não é suportada.