Utiliser des extensions avec des pools Batch
Les extensions sont de petites applications qui facilitent la configuration et l’installation post-approvisionnement sur des nœuds de calcul Batch. Vous pouvez sélectionner l’une des extensions autorisées par Azure Batch et l’installer sur les nœuds de calcul au fur et à mesure de leur approvisionnement. Après cela, l’extension peut effectuer l’opération prévue.
Vous pouvez vérifier l’état en direct des extensions que vous utilisez et récupérer les informations qu’elles renvoient pour pouvoir effectuer des détections, des corrections ou des fonctionnalités de diagnostic.
Prérequis
- Les pools avec des extensions doivent utiliser la configuration de machine virtuelle.
- Le type d’extension CustomScript est réservé au service Azure Batch et ne peut pas être remplacé.
- Certaines extensions ont besoin, pour fonctionner correctement, d’une identité managée au niveau du pool qui soit accessible dans le contexte d’un nœud de calcul. Le cas échéant pour les extensions, consultez Configuration des identités managées dans des pools Batch.
Conseil
Vous ne pouvez pas ajouter des extensions à un pool existant. Vous devez recréer les pools pour ajouter, supprimer ou mettre à jour des extensions.
Extensions prises en charge
Les extensions qui peuvent actuellement être installées lors de la création d’un pool Batch sont les suivantes :
- Extension Azure Key Vault pour Linux
- Extension Azure Key Vault pour Windows
- Extension de monitoring et d’analytique des journaux Azure Monitor pour Linux
- Extension de monitoring et d’analytique des journaux Azure Monitor pour Windows
- Extension Desired State Configuration (DSC) Azure
- Extension Diagnostics Azure pour machines virtuelles Windows
- Extension du pilote GPU HPC pour Windows sur AMD
- Extension du pilote GPU HPC pour Windows sur NVIDIA
- Extension du pilote GPU HPC pour Linux sur NVIDIA
- Extension Microsoft Antimalware pour Windows
- Agent Azure Monitor pour Linux
- Agent Azure Monitor pour Windows
Vous pouvez demander de l’aide pour d’autres éditeurs et/ou types d’extension en ouvrant une demande de support.
Créer un pool avec des extensions
L’exemple suivant crée un pool Batch de nœuds Linux/Windows qui utilise l’extension Azure Key Vault.
URI de l’API REST
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Corps de la demande pour un nœud Linux
{
"name": "test1",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_DS2_V2",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftcblmariner",
"offer": "cbl-mariner",
"sku": "cbl-mariner-2",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.mariner 2.0",
"extensions": [
{
"name": "secretext",
"type": "KeyVaultForLinux",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"certificateStoreLocation": "/var/lib/waagent/Microsoft.Azure.KeyVault",
"requireInitialSync": true,
"observedCertificates": [
"https://testkvwestus2.vault.azure.net/secrets/authsecreat"
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
}
},
"protectedSettings": {}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"resizeTimeout": "PT15M"
}
}
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Corps de la demande pour un nœud Windows
{
"name": "test1",
"type": "Microsoft.Batch/batchAccounts/pools",
"properties": {
"vmSize": "STANDARD_DS2_V2",
"taskSchedulingPolicy": {
"nodeFillType": "Pack"
},
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "microsoftwindowsserver",
"offer": "windowsserver",
"sku": "2022-datacenter",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.windows amd64",
"extensions": [
{
"name": "secretext",
"type": "KeyVaultForWindows",
"publisher": "Microsoft.Azure.KeyVault",
"typeHandlerVersion": "3.0",
"autoUpgradeMinorVersion": true,
"settings": {
"secretsManagementSettings": {
"pollingIntervalInS": "300",
"requireInitialSync": true,
"observedCertificates": [
{
"https://testkvwestus2.vault.azure.net/secrets/authsecreat"
"certificateStoreLocation": "LocalMachine",
"keyExportable": true
}
]
},
"authenticationSettings": {
"msiEndpoint": "http://169.254.169.254/metadata/identity",
"msiClientId": "885b1a3d-f13c-4030-afcf-9f05044d78dc"
}
},
"protectedSettings":{}
}
]
}
},
"scaleSettings": {
"fixedScale": {
"targetDedicatedNodes": 1,
"targetLowPriorityNodes": 0,
"resizeTimeout": "PT15M"
}
}
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Obtenir des données d’extension à partir d’un pool
L’exemple suivant récupère les données de l’extension Azure Key Vault.
URI de l’API REST
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Corps de la réponse
{
"odata.metadata": "https://testwestus2batch.westus2.batch.azure.com/$metadata#extensions/@Element",
"instanceView": {
"name": "secretext",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": 0,
"displayStatus": "Provisioning succeeded",
"message": "Successfully started Key Vault extension service. 2021-02-08T19:49:39Z"
}
]
},
"vmExtension": {
"name": "KVExtensions",
"publisher": "Microsoft.Azure.KeyVault",
"type": "KeyVaultForLinux",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": "{\r\n \"secretsManagementSettings\": {\r\n \"pollingIntervalInS\": \"300\",\r\n \"certificateStoreLocation\": \"/var/lib/waagent/Microsoft.Azure.KeyVault\",\r\n \"requireInitialSync\": true,\r\n \"observedCertificates\": [\r\n \"https://testkvwestus2.vault.azure.net/secrets/testumi\"\r\n ]\r\n },\r\n \"authenticationSettings\": {\r\n \"msiEndpoint\": \"http://169.254.169.254/metadata/identity\",\r\n \"msiClientId\": \"885b1a3d-f13c-4030-afcf-922f05044d78dc\"\r\n }\r\n}"
}
}
Résolution des problèmes liés à l’extension Key Vault
Si l’extension Key Vault est configurée de manière incorrecte, il est possible que le nœud de calcul soit dans un état inhabituel. Pour résoudre des problèmes de défaillance de l’extension Key Vault, vous pouvez définir la valeur de requireInitialSync sur false et redéployer votre pool et le nœud de calcul est ensuite dans un état inactif. Vous pouvez vous connecter au nœud de calcul pour rechercher des erreurs dans les journaux d’extension Key Vault et corriger les problèmes de configuration. Visitez le lien suivant vers la documentation sur l’extension Key Vault pour obtenir plus d’informations.
Étapes suivantes
- Découvrez différentes manières de copier des applications et des données dans des nœuds de pool.
- En savoir plus sur l’utilisation de nœuds et de pools.