Usare le estensioni con i pool di Batch
Le estensioni sono piccole applicazioni che facilitano la configurazione post-provisioning e la configurazione nei nodi di calcolo batch. È possibile selezionare una qualsiasi delle estensioni consentite da Azure Batch e installarle nei nodi di calcolo durante il provisioning. Successivamente, l'estensione può eseguire l'operazione desiderata.
È possibile controllare lo stato attivo delle estensioni usate e recuperare le informazioni restituite per perseguire eventuali funzionalità di rilevamento, correzione o diagnostica.
Prerequisiti
- I pool con estensioni devono usare la configurazione della macchina virtuale.
- Il tipo di estensione CustomScript è riservato per il servizio Azure Batch e non può essere sottoposto a override.
- Alcune estensioni potrebbero richiedere l'accesso a identità gestita a livello di pool nel contesto di un nodo di calcolo per funzionare correttamente. Vedere Configurazione delle identità gestite nei pool di Batch, se applicabile per le estensioni.
Suggerimento
Non è possibile aggiungere estensioni a un pool esistente. I pool devono essere ricreati per aggiungere, rimuovere o aggiornare le estensioni.
Estensioni supportate
Quando si crea un pool di Batch, è attualmente possibile installare le estensioni seguenti:
- 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 DSC (Desired State Configuration) di Azure
- estensione Diagnostica di Azure per le macchine virtuali Windows
- Estensione driver GPU HPC per Windows in AMD
- Estensione del driver GPU HPC per Windows in NVIDIA
- Estensione del driver GPU HPC per Linux in NVIDIA
- Estensione Microsoft Antimalware per Windows
- Agente di Monitoraggio di Azure per Linux
- Agente di Monitoraggio di Azure per Windows
È possibile richiedere supporto per altri server di pubblicazione e/o tipi di estensione aprendo una richiesta di supporto.
Creare un pool con estensioni
L'esempio seguente crea un pool 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 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": {}
}
}
}
Corpo della richiesta per il nodo 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": {}
}
}
}
Ottenere dati di estensione da un pool
L'esempio seguente recupera 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 è configurata in modo non corretto, il nodo di calcolo potrebbe trovarsi in uno stato utilizzabile. Per risolvere l'errore dell'estensione di Key Vault, è possibile impostare temporaneamente requireInitialSync su false e ridistribuire il pool, quindi il nodo di calcolo è inattiva, è 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 altre informazioni, vedere il collegamento alla documentazione dell'estensione key vault seguente.
Passaggi successivi
- Informazioni sui vari modi per copiare applicazioni e dati nei nodi del pool.
- Altre informazioni sull'uso di nodi e pool.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per