Créer un pool de communication de nœuds simplifié sans IP publiques

Notes

Cela remplace la version préliminaire précédente du pool Azure Batch sans adresses IP publiques. Cette nouvelle version nécessite l’utilisation de la communication de nœud de calcul simplifiée.

Important

La prise en charge des pools sans adresses IP publiques dans Azure Batch est actuellement disponible pour certaines régions.

Lorsque vous créez un pool Azure Batch, vous pouvez approvisionner le pool de configuration de machine virtuelle sans adresse IP publique. Cet article explique comment configurer un pool Batch sans adresses IP publiques.

Pourquoi utiliser un pool sans adresses IP publiques ?

Par défaut, une adresse IP publique est affectée à tous les nœuds de calcul d’un pool de configuration de machine virtuelle Azure Batch. Cette adresse est utilisée par le service Batch pour prendre en charge l’accès sortant à Internet, ainsi que l’accès entrant aux nœuds de calcul à partir d’Internet.

Pour restreindre l’accès à ces nœuds et réduire la détectabilité de ces nœuds à partir d’Internet, vous pouvez provisionner le pool sans adresses IP publiques.

Prérequis

Important

Les prérequis de cette fonctionnalité ont changé par rapport à la préversion. Veillez à passer en revue chaque élément pour connaître les modifications avant de continuer.

  • Utilisez la communication simplifiée des nœuds de calcul. Pour plus d’informations, consultez Utiliser la communication simplifiée des nœuds de calcul.

  • L’API du client Batch doit utiliser l’authentification Microsoft Entra. La prise en charge d’Azure Batch pour Microsoft Entra ID est documentée dans Authentifier les solutions de service Batch avec Active Directory.

  • Créez votre pool dans un réseau virtuel Azure (VNet), suivez ces exigences et configurations. Pour préparer un réseau virtuel avec un ou plusieurs sous-réseaux à l’avance, vous pouvez utiliser le portail Azure, Azure PowerShell, l’interface de ligne de commande Azure (CLI) ou d’autres méthodes.

    • Le réseau virtuel doit se trouver dans la même région et le même abonnement que le compte Batch utilisé pour créer le pool.

    • Le sous-réseau spécifié pour le pool doit avoir suffisamment d’adresses IP non attribuées pour contenir le nombre de machines virtuelles ciblées pour le pool, autrement dit, la somme des propriétés targetDedicatedNodes et targetLowPriorityNodes du pool. Si le sous-réseau ne dispose pas de suffisamment d’adresses IP non attribuées, le pool alloue partiellement les nœuds de calcul, et une erreur de redimensionnement se produit.

    • Si vous prévoyez d’utiliser un point de terminaison privé et que la stratégie de réseau de point de terminaison privé est activée sur votre réseau virtuel, vérifiez que la connexion entrante avec TCP/443 au sous-réseau hébergeant le point de terminaison privé est autorisé à partir du sous-réseau du pool Batch.

  • Activez l’accès sortant pour la gestion des nœuds Batch. Un pool sans adresses IP publiques n’a pas d’accès sortant Internet activé par défaut. Choisissez une des options suivantes pour permettre aux nœuds de calcul d’accéder au service de gestion des nœuds Batch (consultez Utiliser la communication simplifiée des nœuds de calcul) :

    • Utilisez le point de terminaison privé nodeManagement avec des comptes Batch afin de disposer d’un accès privé au service de gestion des nœuds Batch à partir du réseau virtuel. Cette solution est la méthode privilégiée.

    • Vous pouvez également fournir votre propre prise en charge de l’accès sortant Internet (consultez Accès sortant à Internet).

Important

Il existe deux sous-ressources pour les points de terminaison privés avec des comptes Batch. Utilisez le point de terminaison privé nodeManagement pour le pool Batch sans adresses IP publiques. Pour plus d’informations, consultez Utiliser des points de terminaison privés avec des comptes Azure Batch.

Limites actuelles

  1. Les pools sans adresses IP publiques doivent utiliser la configuration de machine virtuelle et non la configuration des services cloud.
  2. La configuration des points de terminaison personnalisés pour les nœuds de calcul Batch ne fonctionne pas avec les pools qui n’ont pas d’adresses IP publiques.
  3. Étant donné que ce type de pool n’a pas d’adresses IP publiques, vous ne pouvez pas utiliser vos propres adresses IP publiques.
  4. Le jeton d’authentification de tâche pour la tâche Batch n’est pas pris en charge. La solution de contournement consiste à utiliser le pool Batch avec des identités managées.

Créer un pool sans adresses IP publiques dans le portail Azure

  1. Si nécessaire, créez un point de terminaison privé nodeManagement pour votre compte Batch dans le réseau virtuel (voir l’exigence d’accès sortant dans les conditions préalables).
  2. Accédez à votre compte  Batch dans le portail Azure.
  3. Dans la fenêtre Paramètres située à gauche, sélectionnez Pools.
  4. Dans la fenêtre Pools, sélectionnez Ajouter.
  5. Dans la fenêtre Ajouter un pool, sélectionnez l’option que vous souhaitez utiliser à partir de la liste déroulante Type d’image.
  6. Sélectionnez le serveur de publication, l’offre ou la référence SKU qui correspond à votre image.
  7. Spécifiez les autres paramètres obligatoires, notamment la Taille du nœud, les Nœuds dédiés cibles et les Nœuds spot/basse priorité cibles.
  8. Pour Mode de communication du nœud, sélectionnez Simplifié sous Paramètres facultatifs.
  9. Sélectionnez le réseau virtuel et le sous-réseau que vous souhaitez utiliser. Ce réseau virtuel doit se trouver dans le même emplacement que le pool que vous créez.
  10. Dans Type de provisionnement des adresses IP, sélectionnez NoPublicIPAddresses.

La capture d’écran suivante montre les éléments qui doivent être modifiés pour créer un pool sans adresses IP publiques.

Screenshot of the Add pool screen with NoPublicIPAddresses selected.

Utiliser l’API REST Batch pour créer un pool sans adresses IP publiques

L’exemple suivant montre comment utiliser l’API REST du service Batch pour créer un pool qui utilise des adresses IP publiques.

URI de l’API REST

POST {batchURL}/pools?api-version=2022-10-01.16.0
client-request-id: 00000000-0000-0000-0000-000000000000

Corps de la demande

"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"
}

Créer un pool sans adresses IP publiques au moyen d’un modèle ARM

Vous pouvez utiliser ce modèle de démarrage rapide Azure pour créer un pool sans adresses IP publiques à l’aide du modèle Azure Resource Manager (ARM).

Les ressources suivantes seront déployées par le modèle :

  • Compte Azure Batch avec pare-feu IP configuré pour bloquer l’accès au réseau public au point de terminaison de gestion des nœuds Batch
  • Réseau virtuel avec groupe de sécurité réseau pour bloquer l’accès sortant à Internet
  • Point de terminaison privé pour accéder au point de terminaison de gestion des nœuds Batch du compte
  • Intégration DNS pour le point de terminaison privé à l’aide d’une zone DNS privée liée au réseau virtuel
  • Pool Batch déployé dans le réseau virtuel et sans adresses IP publiques

Si vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.

Button to deploy the Resource Manager template to Azure.

Remarque

Si le déploiement du point de terminaison privé a échoué en raison d’un groupId « nodeManagement » non valide, vérifiez si la région figure dans la liste prise en charge pour la communication simplifiée des nœuds de calcul. Choisissez la région appropriée, puis réessayez le déploiement.

Accès sortant vers Internet

Dans un pool sans adresses IP publiques, vos machines virtuelles ne pourront pas accéder à l’Internet public si vous ne configurez pas votre réseau correctement, par exemple, à l’aide de la traduction d'adresses réseau (NAT) de réseau virtuel. La traduction d’adresses réseau (NAT) autorise uniquement l’accès sortant vers Internet à partir des machines virtuelles du réseau virtuel. Les nœuds de calcul créés par Batch ne sont pas accessibles publiquement, car ils n’ont pas d’adresses IP publiques.

Pour fournir une connectivité sortante, vous pouvez également utiliser un routage défini par l’utilisateur (UDR). Cette méthode vous permet de router le trafic vers une machine proxy disposant d’un accès Internet public, par exemple le Pare-feu Azure.

Important

Il n’existe aucune ressource réseau supplémentaire (équilibreur de charge, groupe de sécurité réseau) créée pour les pools de communication de nœuds simplifiés sans adresses IP publiques. Étant donné que les nœuds de calcul du pool ne sont liés à aucun équilibreur de charge, Azure peut fournir un accès sortant par défaut. Toutefois, l’accès sortant par défaut n’est pas adapté aux charges de travail de production et sera mis hors service le 30 septembre 2025 (voir l’annonce officielle). Par conséquent, si vos charges de travail nécessitent un accès sortant Internet ou si votre pool n’utilise pas de point de terminaison privé pour accéder au point de terminaison de gestion des nœuds Batch, vous devez fournir votre propre solution pour activer l’accès sortant Internet.

Résolution des problèmes

Nœuds de calcul inutilisables dans un pool Batch

Si des nœuds de calcul s’exécutent dans un état inutilisable dans un pool Batch sans adresses IP publiques, la première vérification, et la plus importante, consiste à vérifier l’accès sortant au service de gestion des nœuds Batch. Il doit être configuré correctement afin que les nœuds de calcul puissent se connecter au service à partir de votre réseau virtuel.

Utilisation du point de terminaison privé nodeManagement

Si vous avez créé un point de terminaison privé de gestion des nœuds dans le réseau virtuel pour votre compte Batch :

  • Vérifiez que le point de terminaison privé est créé dans le bon réseau virtuel, que l’état du provisionnement est Réussi et que le statut est Approuvé.
  • Vérifiez si la configuration DNS est configurée correctement pour le point de terminaison de gestion des nœuds de votre compte Batch :
    • Si votre point de terminaison privé est créé avec intégration automatique à la zone DNS privée, vérifiez que l’enregistrement DNS A est correctement configuré dans la zone DNS privée privatelink.batch.azure.com et que la zone est liée à votre réseau virtuel.
    • Si vous utilisez votre propre solution DNS, vérifiez que l’enregistrement DNS de votre point de terminaison de gestion des nœuds Batch est correctement configuré et pointe vers l’adresse IP du point de terminaison privé.
  • Vérifiez la résolution DNS du point de terminaison de gestion des nœuds Batch de votre compte. Vous pouvez confirmer cela en s’exécutant nslookup <nodeManagementEndpoint> à partir de votre réseau virtuel. La résolution du nom DNS devrait être l’adresse IP du point de terminaison privé.
  • Si la stratégie de réseau de point de terminaison privé est activée sur votre réseau virtuel, vérifiez le NSG et l’UDR pour les sous-réseaux du pool Batch et du point de terminaison privé. La connexion entrante avec TCP/443 au sous-réseau hébergeant le point de terminaison privé doit être autorisée à partir du sous-réseau du pool Batch.
  • À partir du sous-réseau du pool Batch, effectuez un test ping TCP sur le point de terminaison de gestion des nœuds avec le port HTTPS par défaut (443). Cette sonde peut indiquer si la connexion de liaison privée fonctionne comme prévu.
# Windows
Test-TcpConnection -ComputeName <nodeManagementEndpoint> -Port 443
# Linux
nc -v <nodeManagementEndpoint> 443

Si le test ping TCP échoue (par exemple, en raison de l’expiration du délai d’attente), il s’agit généralement d’un problème lié à la connexion de liaison privée, et vous pouvez créer un ticket de support Azure avec cette ressource de point de terminaison privé. Autrement, ce problème ne nœud inutilisable peut être résolu comme pour les pools Batch normaux, et vous pouvez créer un ticket de support avec votre compte Batch.

Utilisation de votre propre solution sortante Internet

Si vous utilisez votre propre solution sortante Internet au lieu d’un point de terminaison privé, effectuez un test ping TCP sur le point de terminaison de gestion des nœuds. Si cela ne fonctionne pas, vérifiez si votre accès sortant est correctement configuré en suivant les exigences détaillées pour la communication simplifiée des nœuds de calcul.

Connexion aux nœuds de calcul

Il n’y a pas d’accès entrant d’Internet aux nœuds de calcul dans le pool Batch sans adresses IP publiques. Pour accéder à vos nœuds de calcul à des fins de débogage, vous devez vous connecter à partir du réseau virtuel :

  • Utilisez une machine jumpbox à l’intérieur du réseau virtuel, puis connectez-vous à vos nœuds de calcul à partir de là.
  • Vous pouvez également essayer d’utiliser d’autres solutions de connexion à distance comme Azure Bastion :
    • Créez Bastion dans le réseau virtuel avec l’option Connexion basée sur IP activée.
    • Utilisez Bastion pour vous connecter au nœud de calcul en utilisant son adresse IP.

Vous pouvez suivre le guide Connexion aux nœuds de calcul pour obtenir les informations d’identification de l’utilisateur et l’adresse IP du nœud de calcul cible dans votre pool Batch.

Migration à partir de la préversion précédente de pools sans adresses IP publiques

Pour les pools existants qui utilisent la préversion précédente du pool sans adresses IP publiques Azure Batch, il est uniquement possible de migrer des pools créés dans un réseau virtuel.

  1. Créez un point de terminaison privé pour la gestion des nœuds Batch dans le réseau virtuel.
  2. Mettez à jour le mode de communication des nœuds du pool en le définissant sur simplifié.
  3. Effectuez un scale-down du pool vers zéro nœud.
  4. Effectuez un nouveau scale-out du pool. Le pool est ensuite migré automatiquement vers la nouvelle version.

Étapes suivantes