Criar um conjunto do Azure Batch numa rede virtual
Ao criar um pool de Lotes do Azure, você pode provisionar o pool em uma sub-rede de uma Rede Virtual do Azure que você especificar. Este artigo explica como configurar um pool de lotes em uma rede virtual.
Porquê utilizar uma Rede Virtual?
Os nós de computação em um pool podem se comunicar uns com os outros, como executar tarefas de várias instâncias, sem exigir uma rede virtual separada. No entanto, por padrão, os nós em um pool não podem se comunicar com nenhuma máquina virtual (VM) que esteja fora do pool, como servidores de licença ou de arquivos.
Para permitir que os nós de computação se comuniquem com segurança com outras máquinas virtuais ou com uma rede local, você pode provisionar o pool em uma sub-rede de uma Rede Virtual.
Pré-requisitos
Autenticação. Para usar uma Rede Virtual do Azure, a API do cliente Batch deve usar a autenticação do Microsoft Entra. Para saber mais, consulte Autenticar soluções de serviço em lote com o Ative Directory.
Uma Rede Virtual do Azure. Para preparar uma Rede Virtual com uma ou mais sub-redes com antecedência, você pode usar o portal do Azure, o Azure PowerShell, a CLI (CLI) do Microsoft Azure ou outros métodos.
Para criar uma Rede Virtual baseada no Azure Resource Manager, consulte Criar uma rede virtual. Uma Rede Virtual baseada no Gerenciador de Recursos é recomendada para novas implantações e é suportada apenas em pools que usam a Configuração de Máquina Virtual.
Para criar uma rede virtual clássica, consulte Criar uma rede virtual (clássica) com várias sub-redes. Uma Rede Virtual clássica é suportada apenas em pools que usam a Configuração de Serviços de Nuvem.
Importante
Evite usar 172.17.0.0/16 para VNet do pool de lotes do Azure. É o padrão para a rede de ponte do Docker e pode entrar em conflito com outras redes que você deseja conectar à rede virtual. Criar uma rede virtual para o pool de lotes do Azure requer um planejamento cuidadoso de sua infraestrutura de rede.
Requisitos gerais da rede virtual
A Rede Virtual deve estar na mesma assinatura e região que a conta de lote que você usa para criar seu pool.
A sub-rede especificada para o pool deve ter endereços IP não atribuídos suficientes para acomodar o número de VMs destinadas ao pool, o suficiente para acomodar as
targetDedicatedNodes
propriedades etargetLowPriorityNodes
do pool. Se a sub-rede não tiver endereços IP não atribuídos suficientes, o conjunto atribui parcialmente os nós de computação e ocorre um erro de redimensionamento.Se você não estiver usando a Comunicação de Nó de Computação Simplificada, precisará resolver seus pontos de extremidade de Armazenamento do Azure usando quaisquer servidores DNS personalizados que sirvam sua rede virtual. Mais concretamente, devem ser resolvíveis os URLs no formato
<account>.table.core.windows.net
,<account>.queue.core.windows.net
e<account>.blob.core.windows.net
.Vários pools podem ser criados na mesma rede virtual ou na mesma sub-rede (desde que tenha espaço de endereçamento suficiente). Um único pool não pode existir em várias redes virtuais ou sub-redes.
Importante
Os pools de lotes podem ser configurados em um dos dois modos de comunicação do nó. O modo de comunicação de nó clássico é onde o serviço Batch inicia a comunicação com os nós de computação. O modo de comunicação de nó simplificado é onde os nós de computação iniciam a comunicação com o Serviço em lote.
- Qualquer rede virtual ou rede virtual emparelhada que será usada para pools de lotes não deve ter intervalos de endereços IP sobrepostos com rede definida por software ou roteamento em nós de computação. Uma fonte comum para conflitos é o uso de um tempo de execução de contêiner, como o docker. O Docker criará uma ponte de rede padrão com um intervalo de sub-rede definido de
172.17.0.0/16
. Todos os serviços executados em uma rede virtual nesse espaço de endereço IP padrão entrarão em conflito com os serviços no nó de computação, como o acesso remoto via SSH.
Pools na configuração da máquina virtual
Requisitos:
- Redes Virtuais suportadas: apenas redes virtuais baseadas no Azure Resource Manager.
- ID da sub-rede: ao especificar a sub-rede usando as APIs de lote, use o identificador de recurso da sub-rede. O identificador da sub-rede tem o formato:
/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}
- Permissões: verifique se suas políticas de segurança ou bloqueios na assinatura ou grupo de recursos da Rede Virtual restringem as permissões de um usuário para gerenciar a Rede Virtual.
- Recursos de rede: o Batch cria automaticamente mais recursos de rede no grupo de recursos que contém a Rede Virtual.
Importante
Para cada 100 nós dedicados ou de baixa prioridade, o Batch cria um NSG (grupo de segurança de rede), um endereço IP público e um balanceador de carga. Estes recursos estão limitados pelas quotas de recursos da subscrição. Para conjuntos grandes, poderá ter de pedir um aumento de quota para um ou mais destes recursos.
Grupos de segurança de rede para pools de configuração de máquina virtual: padrão de lote
O Batch cria um NSG (grupo de segurança de rede) no nível da interface de rede de cada implantação do Conjunto de Escala de Máquina Virtual dentro de um pool de Lotes. Para pools que não têm endereços IP públicos sob simplified
comunicação de nó de computação, os NSGs não são criados.
Para fornecer a comunicação necessária entre os nós de computação e o serviço em lote, esses NSGs são configurados de modo que:
- Tráfego TCP de entrada nas portas 29876 e 29877 de endereços IP de serviço em lote que correspondem ao BatchNodeManagement.etiqueta de serviço de região . Esta regra só é criada no
classic
modo de comunicação do pool. - Saída de qualquer tráfego na porta 443 para endereços IP de serviço de lote que correspondam ao BatchNodeManagement.etiqueta de serviço de região .
- Tráfego de saída em qualquer porta para a rede virtual. Esta regra pode ser alterada por regras NSG de nível de sub-rede.
- Tráfego de saída em qualquer porta para a Internet. Esta regra pode ser alterada por regras NSG de nível de sub-rede.
Nota
Para pools criados usando uma versão de API anterior ao 2024-07-01
, o tráfego TCP de entrada na porta 22 (nós Linux) ou na porta 3389 (nós do Windows) é configurado para permitir acesso remoto via SSH ou RDP nas portas padrão.
Importante
Tenha cuidado se modificar ou adicionar regras de entrada ou saída em NSGs configurados em lote. Se a comunicação com os nós de computação na sub-rede especificada for negada por um NSG, o serviço em lote definirá o estado dos nós de computação como inutilizável. Além disso, nenhum bloqueio de recurso deve ser aplicado a qualquer recurso criado pelo Batch, porque isso pode impedir a limpeza de recursos como resultado de ações iniciadas pelo usuário, como excluir um pool.
Grupos de segurança de rede para conjuntos de Configuração de Máquina Virtual: especificar regras ao nível da sub-rede
Se você tiver um NSG associado à sub-rede para nós de computação em lote, deverá configurar esse NSG com, pelo menos, as regras de segurança de entrada e saída mostradas nas tabelas a seguir.
Aviso
Os endereços IP do serviço Batch podem ser alterados ao longo do tempo. Portanto, você deve usar o BatchNodeManagement.tag de serviço de região para as regras NSG indicadas nas tabelas a seguir. Evite preencher regras NSG com endereços IP específicos do serviço em lote.
Regras de segurança de entrada
Configure o tráfego de entrada na porta 3389 (Windows) ou 22 (Linux) somente se precisar permitir o acesso remoto aos nós de computação de fontes externas nas portas RDP ou SSH padrão, respectivamente. Talvez seja necessário permitir o tráfego SSH no Linux se precisar de suporte para tarefas de várias instâncias com determinados tempos de execução MPI (Message Passing Interface) na sub-rede que contém os nós de computação em lote, pois o tráfego pode ser bloqueado por regras NSG no nível da sub-rede. O tráfego MPI normalmente está no espaço de endereço IP privado, mas pode variar entre os tempos de execução do MPI e a configuração do tempo de execução. Permitir o tráfego nessas portas não é estritamente necessário para que os nós de computação do pool sejam utilizáveis. Você também pode desabilitar o acesso remoto padrão nessas portas por meio da configuração de pontos de extremidade de pool.
Regras de segurança de saída
Saída para BatchNodeManagement.A tag de serviço de região é necessária no classic
modo de comunicação do pool se você estiver usando tarefas do Gerenciador de tarefas ou se as tarefas precisarem se comunicar de volta ao serviço em lote. Para saída para BatchNodeManagement.simplified
No modo de comunicação de pool, o serviço Batch atualmente usa apenas o protocolo TCP, mas o UDP pode ser necessário para compatibilidade futura. Para pools sem endereços IP públicos usando simplified
o modo de comunicação e com um ponto de extremidade privado de gerenciamento de nós, um NSG não é necessário. Para obter mais informações sobre regras de segurança de saída para o BatchNodeManagement.tag de serviço de região , consulte Usar comunicação simplificada de nó de computação.
Criar um pool com uma Rede Virtual no portal do Azure
Depois de criar sua Rede Virtual e atribuir uma sub-rede a ela, você pode criar um pool de lotes com essa Rede Virtual. Siga estas etapas para criar um pool a partir do portal do Azure:
Pesquise e selecione Contas em lote na barra de pesquisa na parte superior do portal do Azure. Selecione sua conta Batch. Essa conta deve estar na mesma assinatura e região que o grupo de recursos que contém a Rede Virtual que você pretende usar.
Selecione Pools na navegação à esquerda.
Na janela Pools, selecione Adicionar.
Na página Adicionar Pool, selecione as opções e insira as informações do seu pool. Para obter mais informações sobre como criar pools para sua conta de lote, consulte Criar um pool de nós de computação. Tamanho do nó, nós dedicados de destino e nós de ponto de destino/baixa prioridade e quaisquer configurações opcionais desejadas.
Em Rede Virtual, selecione a rede virtual e a sub-rede que deseja usar.
Selecione OK para criar seu pool.
Importante
Se você tentar excluir uma sub-rede que está sendo usada por um pool, você receberá uma mensagem de erro. Todos os pools que usam uma sub-rede devem ser excluídos antes de excluir essa sub-rede.
Rotas definidas pelo utilizador para túnel forçado
Você pode ter requisitos em sua organização para redirecionar (forçar) o tráfego vinculado à Internet da sub-rede de volta para seu local local para inspeção e registro. Além disso, você pode ter ativado o túnel forçado para as sub-redes em sua rede virtual.
Para garantir que os nós em seu pool funcionem em uma Rede Virtual que tenha o encapsulamento forçado habilitado, você deve adicionar as seguintes rotas definidas pelo usuário (UDR) para essa sub-rede.
Para pools de modo de comunicação clássico:
O serviço de lote precisa se comunicar com os nós para agendar tarefas. Para habilitar essa comunicação, adicione um UDR correspondente ao BatchNodeManagement.tag de serviço de região na região onde sua conta de lote existe. Defina o tipo de salto seguinte como Internet.
Certifique-se de que sua rede local não esteja bloqueando o tráfego TCP de saída para o Armazenamento do Azure na porta de destino 443 (especificamente, URLs do formato
*.table.core.windows.net
,*.queue.core.windows.net
e*.blob.core.windows.net
).
Para pools de modo de comunicação simplificado sem usar o ponto de extremidade privado de gerenciamento de nós:
- Certifique-se de que sua rede local não esteja bloqueando o tráfego TCP/UDP de saída para o Azure Batch BatchNodeManagement.etiqueta de serviço de região na porta de destino 443. Atualmente, apenas o protocolo TCP é usado, mas o UDP pode ser necessário para compatibilidade futura.
Para todas as piscinas:
- Se você usar montagens de arquivos virtuais, revise os requisitos de rede e verifique se nenhum tráfego necessário está bloqueado.
Aviso
Os endereços IP do serviço Batch podem ser alterados ao longo do tempo. Para evitar interrupções devido a alterações no endereço IP do serviço em lote, não especifique diretamente os endereços IP. Em vez disso, use o BatchNodeManagement.etiqueta de serviço de região.