Creare un pool di comunicazione dei nodi semplificato senza indirizzi IP pubblici
Nota
In questo modo viene sostituita la versione di anteprima precedente del pool di Azure Batch senza indirizzi IP pubblici. Questa nuova versione richiede l'uso della comunicazione semplificata dei nodi di calcolo.
Importante
Il supporto per i pool senza indirizzi IP pubblici in Azure Batch è attualmente disponibile per aree selezionate.
Quando si crea un pool di Azure Batch, è possibile effettuare il provisioning del pool di configurazione della macchina virtuale senza un indirizzo IP pubblico. Questo articolo illustra come configurare un pool Batch senza indirizzi IP pubblici.
Perché usare un pool senza indirizzi IP pubblici?
Per impostazione predefinita, a tutti i nodi di calcolo di un pool di configurazione di macchine virtuali di Azure Batch viene assegnato un indirizzo IP pubblico. Questo indirizzo viene usato dal servizio Batch per supportare l'accesso in uscita a Internet, nonché l'accesso in ingresso ai nodi di calcolo da Internet.
Per limitare l'accesso a questi nodi e ridurne l'individuabilità da Internet, è possibile effettuare il provisioning del pool senza indirizzi IP pubblici.
Prerequisiti
Importante
I prerequisiti sono stati modificati rispetto alla versione di anteprima precedente di questa funzionalità. Assicurarsi di esaminare ogni elemento per le modifiche prima di procedere.
Usare la comunicazione semplificata dei nodi di calcolo. Per altre informazioni, vedere Usare la comunicazione semplificata dei nodi di calcolo.
L'API client batch deve usare l'autenticazione Microsoft Entra. Il supporto di Azure Batch per Microsoft Entra ID è documentato in Autenticare le soluzioni del servizio Batch con Active Directory.
Creare il pool in una rete virtuale di Azure, seguire questi requisiti e configurazioni. Per preparare una rete virtuale con una o più subnet in anticipo, è possibile usare il portale di Azure, Azure PowerShell, il interfaccia della riga di comando di Azure (interfaccia della riga di comando di Azure) o altri metodi.
La rete virtuale deve essere nella stessa sottoscrizione e 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 usate come destinazione per il pool; questo valore corrisponde alla somma delle proprietà
targetDedicatedNodes
etargetLowPriorityNodes
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 si prevede di usare l'endpoint privato e la rete virtuale dispone di criteri di rete di endpoint privati abilitati, assicurarsi che la connessione in ingresso con TCP/443 alla subnet che ospita l'endpoint privato sia consentita dalla subnet del pool di Batch.
Abilitare l'accesso in uscita per la gestione dei nodi batch. Per impostazione predefinita, un pool senza indirizzi IP pubblici non dispone dell'accesso in uscita a Internet abilitato. Scegliere una delle opzioni seguenti per consentire ai nodi di calcolo di accedere al servizio di gestione dei nodi Batch (vedere Usare la comunicazione semplificata dei nodi di calcolo):
Usare l'endpoint privato nodeManagement con gli account Batch, che fornisce l'accesso privato al servizio di gestione dei nodi Batch dalla rete virtuale. Questa soluzione è il metodo preferito.
In alternativa, fornire il proprio supporto per l'accesso in uscita a Internet (vedere Accesso in uscita a Internet).
Importante
Esistono due sotto-risorse per gli endpoint privati con account Batch. Usare l'endpoint privato nodeManagement per il pool di Batch senza indirizzi IP pubblici. Per altri dettagli, vedere Usare endpoint privati con gli account Azure Batch.
Limitazioni correnti
- I pool senza indirizzi IP pubblici devono usare la configurazione della macchina virtuale e non Servizi cloud configurazione.
- La configurazione dell'endpoint personalizzata per i nodi di calcolo batch non funziona con i pool senza indirizzi IP pubblici.
- Poiché non sono presenti indirizzi IP pubblici, non è possibile usare gli indirizzi IP pubblici specificati con questo tipo di pool.
- Il token di autenticazione dell'attività per l'attività Batch non è supportato. La soluzione alternativa consiste nell'usare il pool di Batch con identità gestite.
Creare un pool senza indirizzi IP pubblici nel portale di Azure
- Se necessario, creare l'endpoint privato nodeManagement per l'account Batch nella rete virtuale (vedere il requisito di accesso in uscita nei prerequisiti).
- Passare all'account Batch nel portale di Azure.
- Nella finestra Impostazioni a sinistra selezionare Pool.
- Nella finestra Pool selezionare Aggiungi.
- Nella finestra Aggiungi pool selezionare l'opzione desiderata nell'elenco a discesa Tipo di immagine.
- Selezionare il server di pubblicazione/offerta/SKU corretto dell'immagine.
- Specificare le impostazioni necessarie rimanenti, incluse le dimensioni del nodo, i nodi dedicati di destinazione e i nodi spot/priorità bassa di destinazione.
- In Modalità di comunicazione nodo selezionare Semplificato in Impostazioni facoltativo.
- Selezionare una rete virtuale e una subnet da usare. Questa rete virtuale deve trovarsi nella stessa posizione del pool che si sta creando.
- In Tipo di provisioning degli indirizzi IP selezionare NoPublicIPAddresses.
Lo screenshot seguente mostra gli elementi che devono essere modificati per creare un pool senza indirizzi IP pubblici.
Usare l'API REST batch per creare un pool senza indirizzi IP pubblici
L'esempio seguente illustra come usare l'API REST del servizio Batch per creare un pool che usa indirizzi IP pubblici.
URI DELL'API REST
POST {batchURL}/pools?api-version=2022-10-01.16.0
client-request-id: 00000000-0000-0000-0000-000000000000
Corpo della richiesta
"pool": {
"id": "pool-npip",
"vmSize": "standard_d2s_v3",
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "Canonical",
"offer": "0001-com-ubuntu-server-jammy",
"sku": "22_04-lts"
},
"nodeAgentSKUId": "batch.node.ubuntu 22.04"
},
"networkConfiguration": {
"subnetId": "/subscriptions/<your_subscription_id>/resourceGroups/<your_resource_group>/providers/Microsoft.Network/virtualNetworks/<your_vnet_name>/subnets/<your_subnet_name>",
"publicIPAddressConfiguration": {
"provision": "NoPublicIPAddresses"
}
},
"resizeTimeout": "PT15M",
"targetDedicatedNodes": 2,
"targetLowPriorityNodes": 0,
"taskSlotsPerNode": 1,
"taskSchedulingPolicy": {
"nodeFillType": "spread"
},
"enableAutoScale": false,
"enableInterNodeCommunication": false,
"targetNodeCommunicationMode": "simplified"
}
Creare un pool senza indirizzi IP pubblici usando il modello di Resource Manager
È possibile usare questo modello di avvio rapido di Azure per creare un pool senza indirizzi IP pubblici usando il modello di Azure Resource Manager (ARM).
Le risorse seguenti verranno distribuite dal modello:
- Account Azure Batch con firewall IP configurato per bloccare l'accesso alla rete pubblica all'endpoint di gestione dei nodi Batch
- Rete virtuale con gruppo di sicurezza di rete per bloccare l'accesso in uscita a Internet
- Endpoint privato per accedere all'endpoint di gestione dei nodi Batch dell'account
- Integrazione DNS per l'endpoint privato tramite la zona DNS privata collegata alla rete virtuale
- Pool di Batch distribuito nella rete virtuale e senza indirizzi IP pubblici
Se si ha familiarità con l'uso dei modelli di Resource Manager, selezionare il pulsante Distribuisci in Azure . Il modello verrà aperto nel portale di Azure.
Nota
Se la distribuzione dell'endpoint privato non è riuscita a causa di un groupId "nodeManagement" non valido, verificare se l'area è nell'elenco supportato per la comunicazione semplificata dei nodi di calcolo. Scegliere l'area corretta e quindi ripetere la distribuzione.
Accesso in uscita a Internet
In un pool senza indirizzi IP pubblici, le macchine virtuali non saranno in grado di accedere a Internet pubblico a meno che non si configuri la configurazione di rete in modo appropriato, ad esempio tramite NAT di rete virtuale. NAT consente solo l'accesso in uscita a Internet dalle macchine virtuali nella rete virtuale. I nodi di calcolo creati in batch non saranno accessibili pubblicamente, perché non hanno indirizzi IP pubblici associati.
Un altro modo per fornire la connettività in uscita consiste nell'usare una route definita dall'utente. Questo metodo consente di instradare il traffico a un computer proxy con accesso a Internet pubblico, ad esempio Firewall di Azure.
Importante
Non esiste alcuna risorsa di rete aggiuntiva (servizio di bilanciamento del carico, gruppo di sicurezza di rete) creata per i pool di comunicazione dei nodi semplificati senza indirizzi IP pubblici. Poiché i nodi di calcolo nel pool non sono associati ad alcun servizio di bilanciamento del carico, Azure può fornire l'accesso in uscita predefinito. Tuttavia, l'accesso in uscita predefinito non è adatto per i carichi di lavoro di produzione e verrà ritirato il 30 settembre 2025 (vedere l'annuncio ufficiale). Pertanto, se i carichi di lavoro richiedono l'accesso in uscita a Internet o il pool non usa l'endpoint privato per accedere all'endpoint di gestione dei nodi batch, è necessario fornire la propria soluzione per abilitare l'accesso in uscita a Internet.
Risoluzione dei problemi
Nodi di calcolo inutilizzabili in un pool di Batch
Se i nodi di calcolo vengono eseguiti in uno stato inutilizzabile in un pool di Batch senza indirizzi IP pubblici, il primo e più importante controllo consiste nel verificare l'accesso in uscita al servizio di gestione dei nodi Batch. Deve essere configurato correttamente in modo che i nodi di calcolo siano in grado di connettersi al servizio dalla rete virtuale.
Uso dell'endpoint privato nodeManagement
Se è stato creato l'endpoint privato di gestione dei nodi nella rete virtuale per l'account Batch:
- Controllare se l'endpoint privato viene creato nella rete virtuale corretta, nello stato Di provisioning riuscito e anche in Stato approvato .
- Controllare se la configurazione DNS è configurata correttamente per l'endpoint di gestione del nodo dell'account Batch:
- Se l'endpoint privato viene creato con l'integrazione automatica della zona DNS privata, verificare che il record DNS A sia configurato correttamente nella zona
privatelink.batch.azure.com
DNS privata e che la zona sia collegata alla rete virtuale. - Se si usa una soluzione DNS personalizzata, assicurarsi che il record DNS per l'endpoint di gestione dei nodi batch sia configurato correttamente e punti all'indirizzo IP dell'endpoint privato.
- Se l'endpoint privato viene creato con l'integrazione automatica della zona DNS privata, verificare che il record DNS A sia configurato correttamente nella zona
- Controllare la risoluzione DNS per l'endpoint di gestione dei nodi Batch dell'account. È possibile confermarlo eseguendo
nslookup <nodeManagementEndpoint>
dalla rete virtuale e il nome DNS deve essere risolto nell'indirizzo IP dell'endpoint privato. - Se la rete virtuale dispone di criteri di rete di endpoint privati abilitati, controllare NSG e UDR per le subnet del pool di Batch e dell'endpoint privato. La connessione in ingresso con TCP/443 alla subnet che ospita l'endpoint privato deve essere consentita dalla subnet del pool di Batch.
- Dalla subnet del pool di Batch eseguire il ping TCP all'endpoint di gestione del nodo usando la porta HTTPS predefinita (443). Questo probe può indicare se la connessione al collegamento privato funziona come previsto.
# Windows
Test-TcpConnection -ComputeName <nodeManagementEndpoint> -Port 443
# Linux
nc -v <nodeManagementEndpoint> 443
Se il ping TCP ha esito negativo (ad esempio, timeout), si tratta in genere di un problema con la connessione al collegamento privato ed è possibile generare supporto tecnico di Azure ticket con questa risorsa endpoint privata. In caso contrario, questo problema inutilizzabile può risultare problematico come normali pool di Batch ed è possibile generare un ticket di supporto con l'account Batch.
Uso della propria soluzione internet in uscita
Se si usa la propria soluzione internet in uscita anziché un endpoint privato, eseguire il ping TCP all'endpoint di gestione dei nodi. Se non funziona, verificare se l'accesso in uscita è configurato correttamente seguendo i requisiti dettagliati per la comunicazione semplificata dei nodi di calcolo.
Connessione ai nodi di calcolo
Non esiste alcun accesso in ingresso Internet ai nodi di calcolo nel pool di Batch senza indirizzi IP pubblici. Per accedere ai nodi di calcolo per il debug, è necessario connettersi dall'interno della rete virtuale:
- Usare la macchina jumpbox all'interno della rete virtuale, quindi connettersi ai nodi di calcolo da questa posizione.
- In alternativa, provare a usare altre soluzioni di connessione remota come Azure Bastion:
- Creare Bastion nella rete virtuale con connessione basata su IP abilitata.
- Usare Bastion per connettersi al nodo di calcolo usando il relativo indirizzo IP.
È possibile seguire la guida Connessione ai nodi di calcolo per ottenere le credenziali utente e l'indirizzo IP per il nodo di calcolo di destinazione nel pool di Batch.
Migrazione dalla versione di anteprima precedente di Nessun pool ip pubblico
Per i pool esistenti che usano la versione di anteprima precedente del pool di indirizzi IP pubblici di Azure Batch, è possibile eseguire la migrazione solo dei pool creati in una rete virtuale.
- Creare un endpoint privato per la gestione dei nodi batch nella rete virtuale.
- Aggiornare la modalità di comunicazione dei nodi del pool in modo da semplificare.
- Ridurre il pool a zero nodi.
- Aumentare di nuovo il numero di istanze del pool. Il pool viene quindi migrato automaticamente alla nuova versione.
Passaggi successivi
- Informazioni su come usare la comunicazione semplificata dei nodi di calcolo.
- Altre informazioni sulla creazione di pool in una rete virtuale.
- Informazioni su come usare gli endpoint privati con gli account Batch.