Verwenden von Erweiterungen mit Azure Batch-Pools
Erweiterungen sind kleine Anwendungen, die Konfiguration und Setup nach der Bereitstellung auf Azure Batch-Computeknoten erleichtern. Sie können jede der für Azure Batch zugelassenen Erweiterungen auswählen und sie auf den Serverknoten bei deren Bereitstellung installieren. Danach kann die Erweiterung ihre vorgesehene Aufgabe erfüllen.
Sie können den Livestatus der von Ihnen verwendeten Erweiterungen überprüfen und die von den Erweiterungen zurückgegebenen Informationen abrufen, um etwaige Erkennungs-, Korrektur- oder Diagnosefunktionen zu verfolgen.
Voraussetzungen
- Pools mit Erweiterungen müssen die VM-Konfiguration verwenden.
- Der Erweiterungstyp „CustomScript“ ist für den Azure Batch-Dienst reserviert und kann nicht außer Kraft gesetzt werden.
- Einige Erweiterungen benötigen möglicherweise eine verwaltete Identität auf Poolebene, auf die im Kontext eines Computeknotens zugegriffen werden kann, um ordnungsgemäß zu funktionieren. Weitere Informationen finden Sie unter Konfigurieren von verwalteten Identitäten in Batchpools, falls dies für die Erweiterungen zutrifft.
Tipp
Erweiterungen können einem vorhandenen Pool nicht hinzugefügt werden. Pools müssen neu erstellt werden, um Erweiterungen hinzuzufügen, zu entfernen oder zu aktualisieren.
Unterstützte Erweiterungen
Die folgenden Erweiterungen können derzeit beim Erstellen eines Azure Batch-Pools installiert werden:
- Azure Key Vault Erweiterung für Linux
- Azure Key Vault Erweiterung für Windows
- Azure Monitor Protokollanalysen und Überwachungserweiterung für Linux
- Azure Monitor Protokollanalysen und Überwachungserweiterung für Windows
- Erweiterung der Azure Desired State Configuration (DSC, Konfigurieren des gewünschten Status)
- Azure Diagnostics Erweiterung für virtuelle Windows-Computer
- HPC-GPU-Treibererweiterung für Windows auf AMD
- HPC-GPU-Treibererweiterung für Windows auf NVIDIA
- HPC-GPU-Treibererweiterung für Linux auf NVIDIA
- Microsoft Antimalware-Erweiterung für Windows
- Azure Monitor-Azure Monitor-Agent für Linux
- Azure Monitor-Agent für Windows
Sie können Unterstützung für weitere Herausgeber und/oder Erweiterungstypen anfordern, indem Sie eine Supportanfrage öffnen.
Erstellen eines Pools mit Erweiterungen
Im folgenden Beispiel wird ein Batch-Pool mit Linux- und Windows-Knoten erstellt, in dem die Azure Key Vault-Erweiterung verwendet wird.
REST-API-URI
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Anforderungstext für Linux-Knoten
{
"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": {}
}
}
}
Anforderungstext für Windows-Knoten
{
"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": {}
}
}
}
Erweiterungsdaten aus einem Pool abrufen
Im folgenden Beispiel werden Daten aus der Azure Key Vault-Erweiterung abgerufen.
REST-API-URI
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Antworttext
{
"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}"
}
}
Problembehandlung bei der Key Vault-Erweiterung
Auch wenn die Key Vault-Erweiterung falsch konfiguriert wurde, ist der Serverknoten möglicherweise verwendbar. Um Fehler bei der Key Vault-Erweiterung zu beheben, können Sie requireInitialSync vorübergehend auf FALSE festlegen und den Pool erneut bereitstellen. Anschließend befindet sich der Serverknoten im Leerlaufzustand. Sie können sich beim Serverknoten anmelden, um die Protokolle der KeyVault-Erweiterung auf Fehler zu überprüfen und Konfigurationsprobleme zu beheben. Weitere Informationen finden Sie unter dem Dokumentationslink zur Key Vault-Erweiterung.
Nächste Schritte
- Erfahren Sie mehr über die verschiedenen Möglichkeiten, Anwendungen und Daten auf Poolknoten zu kopieren.
- Erfahren Sie mehr über das Arbeiten mit Knoten und Pools.