搭配 Batch 集區使用延伸模組
延伸模組是小型應用程式,可協助在 Batch 計算節點上進行佈建後的設定及安裝。 您可以選取 Azure Batch 允許的任何延伸模組,並在加以佈建時將其安裝在計算節點上。 之後,延伸模組就可以執行預定的作業。
您可以檢查您使用之延伸模組的即時狀態,並擷取其所傳回的資訊,以執行任何偵測、更正或診斷功能。
必要條件
- 具有延伸模組的集區必須使用虛擬機器設定 (部分機器翻譯)。
- CustomScript 延伸模組類型會保留給 Azure Batch 服務,且無法覆寫。
- 某些延伸模組可能需要在計算節點的內容中存取集區層級受控識別,才能正常運作。 請參閱在 Batch 集區中設定受控識別,以確認是否適用於延伸模組。
提示
延伸模組無法新增至現有的集區。 必須重新建立集區才能新增、移除或更新延伸模組。
支援的擴充功能
建立 Batch 集區時,目前可以安裝下列延伸模組:
- 適用於 Linux 的 Azure Key Vault 延伸模組 (部分機器翻譯)
- 適用於 Windows 的 Azure Key Vault 延伸模組
- 適用於 Linux 的 Azure 監視器記錄分析和監視延伸模組
- 適用於 Windows 的 Azure 監視器記錄分析和監視延伸模組
- Azure Desired State Configuration (DSC) 延伸模組 (部分機器翻譯)
- 適用於 Windows VM 的 Azure 診斷延伸模組
- 適用於使用 AMD 之 Windows 的 HPC GPU 驅動程式延伸模組
- 適用於使用 NVIDIA 之 Windows 的 HPC GPU 驅動程式延伸模組
- 適用於使用 NVIDIA 之 Linux 的 HPC GPU 驅動程式延伸模組
- 適用於 Windows 的 Microsoft Antimalware 延伸模組
- 適用於 Linux 的 Azure 監視器代理程式
- 適用於 Windows 的 Azure 監視器代理程式
您可以建立支援要求,以要求支援其他發行者和/或延伸模組類型。
建立具有延伸模組的集區
下列範例會建立使用 Azure Key Vault 延伸模組的 Linux/Windows 節點 Batch 集區。
REST API URI
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
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": {}
}
}
}
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": {}
}
}
}
從集區取得延伸模組資料
下列範例會從 Azure Key Vault 延伸模組擷取資料。
REST API URI
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
回應本文
{
"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}"
}
}
針對 Key Vault 延伸模組進行疑難排解
如果 Key Vault 延伸模組的設定不正確,則計算節點可能處於可用狀態。 若要針對 Key Vault 延伸模組失敗進行疑難排解,您可以暫時將 requireInitialSync 設定為 false 並重新部署您的集區,然後計算節點會處於閒置狀態,您可登入計算節點來檢查 KeyVault 延伸模組記錄是否有錯誤並修正設定問題。 如需詳細資訊,請瀏覽下列 Key Vault 延伸模組文件連結。
下一步
- 了解將應用程式和資料複製到集區節點 (部分機器翻譯) 的各種方式。
- 深入了解如何使用節點和集區 (部分機器翻譯)。