Condividi tramite


Creare un pool di Azure Batch in una rete virtuale

Quando si crea un pool di Azure Batch, è possibile effettuare il provisioning del pool in una subnet di una rete virtuale di Azure specificata. In questo articolo viene illustrato come impostare un pool di Azure Batch in una rete virtuale.

Perché usare una rete virtuale?

I nodi di calcolo in un pool possono comunicare tra loro, ad esempio per eseguire attività con più istanze, senza richiedere una rete virtuale separata. Per impostazione predefinita, tuttavia, i nodi in un pool non possono comunicare con le macchine virtuali che si trovano all'esterno del pool, ad esempio server licenze o file server.

Per consentire ai nodi di calcolo di comunicare in modo sicuro con altre macchine virtuali o con una rete locale, è possibile effettuare il provisioning del pool in una subnet di una rete virtuale.

Prerequisiti

  • Autenticazione. Per usare una rete virtuale di Azure, l'API client Batch deve usare l'autenticazione di Microsoft Entra. Per altre informazioni, vedere Autenticare le soluzioni del servizio Batch con Active Directory.

  • Una rete virtuale di Azure. Per preparare una rete virtuale con una o più subnet in anticipo, è possibile usare il portale di Azure, Azure PowerShell, l'interfaccia della riga di comando di Azure o altri metodi.

    • Per creare una rete virtuale basata su Azure Resource Manager, vedere Creare una rete virtuale. Una rete virtuale basata su Resource Manager, consigliata per le nuove distribuzioni, è supportata solo in pool che usano Configurazione macchina virtuale.

    • Per creare una rete virtuale classica, vedere Creare una rete virtuale (classica) con più subnet. Una rete virtuale classica è supportata solo in pool che usano Configurazione servizi cloud.

      Importante

      Evitare di usare la rete virtuale del pool di Azure Batch 172.17.0.0/16. È l'impostazione predefinita per la rete bridge Docker e potrebbe essere in conflitto con altre reti che si desidera connettere alla rete virtuale. La creazione di una rete virtuale per il pool di Azure Batch richiede un'attenta pianificazione dell'infrastruttura di rete.

Requisiti generali della rete virtuale

  • La rete virtuale deve risiedere nella stessa sottoscrizione e nella stessa area dell'account Batch usato per creare il pool.

  • La subnet specificata per il pool deve disporre di indirizzi IP non assegnati sufficienti per contenere il numero di macchine virtuali di destinazione per il pool e sufficienti per consentire le proprietà targetDedicatedNodes e targetLowPriorityNodes del pool. Se la subnet non dispone di sufficienti indirizzi IP non assegnati, il pool alloca parzialmente i nodi di calcolo e si verifica un errore di ridimensionamento.

  • Se non si usa la comunicazione semplificata dei nodi di calcolo, è necessario risolvere gli endpoint di Archiviazione di Azure usando tutti i server DNS personalizzati usati dalla rete virtuale. In particolare, gli URL con formato <account>.table.core.windows.net, <account>.queue.core.windows.net e <account>.blob.core.windows.net devono essere risolvibili.

  • È possibile creare più pool nella stessa rete virtuale o nella stessa subnet (purché lo spazio indirizzi disponibile sia sufficiente). Un singolo pool non può estendersi tra più reti virtuali o subnet.

Importante

È possibile configurare i pool di Batch in una delle due modalità di comunicazione dei nodi. La modalità di comunicazione dei nodi classica è la posizione in cui il servizio Batch avvia la comunicazione con i nodi di calcolo. La modalità di comunicazione dei nodi semplificata è la posizione in cui i nodi di calcolo avviano la comunicazione con il servizio Batch.

  • Qualsiasi rete virtuale o rete virtuale con peering che verrà usata per i pool di Batch non deve avere intervalli di indirizzi IP sovrapposti con la rete software-defined o il routing nei nodi di calcolo. Un'origine comune per i conflitti deriva dall'uso di un runtime del contenitore, ad esempio Docker. Docker creerà un bridge di rete predefinito con un intervallo di subnet definito di 172.17.0.0/16. Tutti i servizi in esecuzione all'interno di una rete virtuale in tale spazio indirizzi IP predefinito sono in conflitto con i servizi nel nodo di calcolo, ad esempio l'accesso remoto tramite SSH.

Pool in Configurazione macchina virtuale

Requisiti:

  • Reti virtuali supportate: solo reti virtuali basate su Azure Resource Manager.
  • ID subnet: quando si specifica la subnet usando le API Batch, usare l'identificatore di risorsa della subnet. L'identificatore della subnet è nel formato:

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}

  • Autorizzazioni: controllare se i criteri di sicurezza o i blocchi nel gruppo di risorse o nella sottoscrizione della rete virtuale limitano le autorizzazioni di un utente per gestire la rete virtuale.
  • Risorse di rete: Batch crea automaticamente ulteriori risorse di rete nel gruppo di risorse contenente la rete virtuale.

Importante

Per ogni 100 nodi dedicati o con priorità bassa, Batch alloca un gruppo di sicurezza di rete, un indirizzo IP pubblico e un servizio di bilanciamento del carico. Queste risorse sono limitate in base alle quote delle risorse della sottoscrizione. Per pool di grandi dimensioni potrebbe essere necessario richiedere un aumento della quota per una o più di queste risorse.

Gruppi di sicurezza di rete per i pool di configurazione macchina virtuale: impostazione predefinita di Batch

Batch crea un gruppo di sicurezza di rete a livello di interfaccia di rete di ogni distribuzione del set di scalabilità di macchine virtuali all'interno di un pool di Batch. Per i pool che non hanno indirizzi IP pubblici in comunicazione dei nodi di calcolo simplified, i gruppi di sicurezza di rete non vengono creati.

Per consentire la comunicazione necessaria tra i nodi di calcolo e il servizio Batch, questi gruppi di sicurezza di rete sono configurati nel modo seguente:

  • Traffico TCP in ingresso sulle porte 29876 e 29877 da indirizzi IP del servizio Batch che corrispondono al tag del servizio BatchNodeManagement.region. Questa regola viene creata solo in modalità di comunicazione del pool classic.
  • Traffico TCP in ingresso sulla porta 22 (nodi di Linux) o sulla porta 3389 (nodi di Windows) per consentire l'accesso remoto rispettivamente per SSH o RDP sulle porte predefinite. Per alcuni tipi di attività con più istanze in Linux, ad esempio MPI, potrebbe essere necessario consentire anche il traffico SSH per gli indirizzi IP nella subnet contenente i nodi di calcolo di Batch. Alcuni runtime MPI possono richiedere l'avvio tramite SSH, che in genere viene instradato nello spazio indirizzi IP privato. Questo traffico potrebbe essere bloccato in base alle regole del gruppo di sicurezza di rete a livello di subnet.
  • Tutto il traffico in uscita sulla 443 agli indirizzi IP del servizio Batch che corrispondono al tag del servizio BatchNodeManagement.region.
  • Traffico in uscita su qualsiasi porta verso la rete virtuale. Questa regola potrebbe essere modificata in base alle regole del gruppo di sicurezza di rete a livello di subnet.
  • Traffico in uscita su qualsiasi porta verso Internet. Questa regola potrebbe essere modificata in base alle regole del gruppo di sicurezza di rete a livello di subnet.

Importante

Prestare attenzione se si modificano o aggiungono regole in ingresso o in uscita nei gruppi di sicurezza di rete configurati per Batch. Se la comunicazione con i nodi di calcolo nella subnet specificata viene negata da un gruppo di sicurezza di rete, il servizio Batch imposta lo stato dei nodi di calcolo su Non utilizzabile. Non deve inoltre essere applicato alcun blocco a qualsiasi risorsa creata da Batch. In caso contrario, il blocco può impedire la pulizia delle risorse in seguito ad azioni avviate dall'utente, ad esempio l'eliminazione di un pool.

Gruppi di sicurezza di rete per i pool di configurazione della macchina virtuale: specifica delle regole a livello di subnet

Se è presente un gruppo di sicurezza di rete associato alla subnet per i nodi di calcolo di Batch, è necessario configurare questo gruppo di sicurezza di rete con almeno le regole di sicurezza in ingresso e in uscita visualizzate nelle tabelle seguenti.

Avviso

Gli indirizzi IP del servizio Batch possono cambiare nel tempo. Pertanto, è consigliabile usare il tag del servizio BatchNodeManagement.region per le regole del gruppo di sicurezza di rete indicate nelle tabelle seguenti. Evitare di popolare le regole del gruppo di sicurezza di rete con indirizzi IP specifici del servizio Batch.

Regole di sicurezza in ingresso

Tag del servizio di origine o indirizzi IP Porte di destinazione Protocollo Modalità di comunicazione del pool Richiesto
Tag del servizio BatchNodeManagement.region 29876-29877 TCP Classico
Indirizzi IP di origine per l'accesso remoto ai nodi di calcolo 3389 (Windows), 22 (Linux) TCP Classica o semplificata No

Configurare il traffico in ingresso sulla porta 3389 (Windows) o 22 (Linux) solo se è necessario per consentire l'accesso remoto ai nodi di calcolo da origini esterne rispettivamente sulle porte RDP o SSH predefinite. Potrebbe essere necessario consentire il traffico SSH in Linux se è necessario il supporto per le attività con più istanze con determinati runtime MPI (Message Passing Interface) nella subnet contenente i nodi di calcolo Batch perché il traffico potrebbe essere bloccato per ogni regola del gruppo di sicurezza di rete a livello di subnet. Il traffico MPI è in genere sullo spazio indirizzi IP privato, ma può variare tra i runtime MPI e la configurazione di runtime. Per poter usare i nodi di calcolo del pool, non è strettamente necessario consentire il traffico su queste porte. È anche possibile disabilitare l'accesso remoto predefinito su queste porte tramite la configurazione degli endpoint del pool.

Regole di sicurezza in uscita

Tag del servizio di destinazione Porte di destinazione Protocollo Modalità di comunicazione del pool Richiesto
Tag del servizio BatchNodeManagement.region 443 * Semplificata
Tag del servizio Storage.region 443 TCP Classico

Le regole in uscita per il tag del servizio BatchNodeManagement.region sono necessarie in modalità di comunicazione del pool classic se si usano attività di Gestione processi o se le attività devono comunicare di nuovo con il servizio Batch. Per le regole in uscita per BatchNodeManagement.region in modalità di comunicazione del pool simplified, il servizio Batch attualmente usa solo il protocollo TCP, ma UDP potrebbe essere necessario per la compatibilità futura. Per i pool di senza indirizzi IP pubblici che usano la modalità di comunicazione simplified e con un endpoint privato di gestione dei nodi, non è necessario un gruppo di sicurezza di rete. Per altre informazioni sulle regole di sicurezza in uscita per il tag del servizio BatchNodeManagement.region, vedere Usare la comunicazione dei nodi di calcolo semplificata.

Creare un pool con una rete virtuale nel portale di Azure

Dopo aver creato la rete virtuale e assegnato una subnet, è possibile creare un pool di Batch con tale rete virtuale. Seguire questa procedura per creare un pool dal portale di Azure:

  1. Nella barra di ricerca in alto nel portale di Azure cercare e selezionare Account Batch. Selezionare l'account Batch. Questo account deve trovarsi nella stessa area e nella stessa sottoscrizione del gruppo di risorse contenente la rete virtuale che si desidera usare.

  2. Selezionare Pool nel riquadro di spostamento a sinistra.

  3. Nella finestra Pool selezionare Aggiungi.

    Screenshot della pagina Pool in un account Batch in cui sono evidenziati l'opzione Pool nel riquadro di spostamento a sinistra e il pulsante Aggiungi nella pagina Pool.

  4. Nella pagina Aggiungi pool selezionare le opzioni e immettere le informazioni per il pool. Per altre informazioni sulla creazione di pool per l'account Batch, vedere Creare un pool di nodi di calcolo. Dimensioni nodo, Nodi dedicati di destinazione, Nodi spot/per priorità bassa e le impostazioni facoltative desiderate.

  5. In Rete virtuale selezionare la rete virtuale e la subnet che si desidera usare.

  6. Selezionare OK per creare il pool.

Importante

Se si tenta di eliminare una subnet usata da un pool, verrà visualizzato un messaggio di errore. Prima di eliminare una subnet, è necessario eliminare tutti i pool che usano tale subnet.

Route definite dall'utente per il tunneling forzato

È possibile che l'organizzazione richieda il reindirizzamento (forzatura) del traffico associato a Internet dalla subnet alla posizione locale con finalità di ispezione e registrazione. È inoltre possibile che il tunneling forzato sia abilitato per le subnet nella rete virtuale in uso.

Per garantire che i nodi di calcolo dei pool di Azure Batch funzionino correttamente in una rete virtuale con il tunneling forzato abilitato, è necessario aggiungere le route definite dall'utente seguenti per tale subnet.

Per i pool con modalità di comunicazione classica:

  • Il servizio Batch deve comunicare con i nodi per la pianificazione delle attività. Per abilitare questa comunicazione, aggiungere una route definita dall'utente corrispondente al tag del servizio BatchNodeManagement.region nell'area in cui risiede l'account Batch. Impostare il Tipo hop successivo su Internet.

  • Assicurarsi che la rete locale non blocchi il traffico TCP in uscita verso Archiviazione di Azure sulla porta di destinazione 443 (in particolare gli URL nel formato *.table.core.windows.net, *.queue.core.windows.net e *.blob.core.windows.net).

Per i pool con modalità di comunicazione semplificata senza usare l'endpoint privato di gestione dei nodi:

  • Assicurarsi che la rete locale non blocchi il traffico TCP/UDP in uscita verso il tag del servizio BatchNodeManagement.region di Azure Batch sulla porta di destinazione 443. Attualmente viene usato solo il protocollo TCP, ma UDP potrebbe essere necessario per la compatibilità futura.

Per tutti i pool:

  • Se si usano i montaggi di file virtuali, esaminare i requisiti di rete e assicurarsi che il traffico necessario noon sia bloccato.

Avviso

Gli indirizzi IP del servizio Batch possono cambiare nel tempo. Per evitare interruzioni dovute alle modifiche agli indirizzi IP del servizio Batch, non specificare direttamente gli indirizzi IP. Usare invece il tag del servizio BatchNodeManagement.region.

Passaggi successivi