Usare le estensioni con i pool in batch
Le estensioni sono piccole applicazioni che facilitano la configurazione post-provisioning e la configurazione nei nodi di calcolo in batch. È possibile selezionare una qualsiasi delle estensioni consentite da Azure Batch e installarla nei nodi di calcolo durante il provisioning. Successivamente l'estensione può eseguire l'operazione per la quale è progettata.
È possibile controllare lo stato attivo delle estensioni usate e recuperare le informazioni restituite per applicare funzionalità di rilevamento, correzione o diagnostica.
Prerequisiti
- I pool con estensioni devono usare la configurazione della macchina virtuale.
- Il tipo di estensione CustomScript è riservato al servizio Azure Batch e non può essere sottoposto sostituito.
- Alcune estensioni potrebbero richiedere l'accesso a un'identità gestita a livello di pool nel contesto di un nodo di calcolo, per funzionare correttamente. Consultare la sezione dedicata alla configurazione delle identità gestite nei pool in batch, se applicabile per le estensioni.
Suggerimento
Non si possono aggiungere estensioni a un pool esistente. È necessario ricreare i pool per aggiungere, rimuovere o aggiornare le estensioni.
Estensioni supportate
Attualmente, quando si crea un pool in batch, si possono installare le seguenti estensioni:
- Estensione Azure Key Vault per Linux
- Estensione Azure Key Vault per Windows
- Estensione di monitoraggio e analisi dei log di Monitoraggio di Azure per Linux
- Estensione di monitoraggio e analisi dei log di Monitoraggio di Azure per Windows
- Estensione Desired State Configuration (DSC) di Azure
- Estensione Diagnostica di Azure per macchine virtuali Windows
- Estensione HPC GPU driver per Windows con AMD
- Estensione HPC GPU per Windows con NVIDIA
- Estensione HPC GPU driver per Linux con NVIDIA
- Estensione Microsoft Antimalware per Windows
- Agente di Monitoraggio di Azure per Linux
- Agente di Monitoraggio di Azure per Windows
Si può richiedere supporto per altri server di pubblicazione e/o tipi di estensione aprendo una richiesta di supporto.
Creare un pool con le estensioni
Nel seguente esempio si crea un pool in batch di nodi Linux/Windows che usa l'estensione Azure Key Vault.
URI DELL'API REST
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Corpo della richiesta per il nodo di 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Corpo della richiesta per il nodo di 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
}
}
}
Ottenere dati di un'estensione da un pool
Nel seguente esempio si recuperano i dati dall'estensione Azure Key Vault.
URI DELL'API REST
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Testo della risposta
{
"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}"
}
}
Risoluzione dei problemi relativi all'estensione Key Vault
Se l'estensione Key Vault non è configurata correttamente, il nodo di calcolo potrebbe essere in uno stato utilizzabile. Per risolvere l'errore dell'estensione di Key Vault è possibile impostare temporaneamente requireInitialSync su "false" e ridistribuire il pool; il nodo di calcolo sarà quindi inattivo. È possibile accedere al nodo di calcolo per controllare i log delle estensioni di KeyVault per individuare gli errori e correggere i problemi di configurazione. Per ulteriori informazioni, visitare il seguente link alla documentazione dell'estensione Key Vault.
Passaggi successivi
- Informazioni sui diversi modi per copiare applicazioni e dati nei nodi del pool.
- Ulteriori informazioni sull'uso di nodi e pool.