Uso de extensiones con grupos de Batch
Las extensiones son pequeñas aplicaciones que facilitan la configuración e instalación posteriores al aprovisionamiento en nodos de ejecución de Batch. Puede seleccionar cualquiera de las extensiones permitidas por Azure Batch e instalarlas en los nodos de proceso a medida que se aprovisionan. Después, la extensión puede realizar su operación esperada.
Puede comprobar el estado activo de las extensiones que usa y recuperar la información que estas devuelven para llevar a cabo cualquier funcionalidad de detección, corrección o diagnóstico.
Prerrequisitos
- Los grupos con extensiones deben usar la configuración de la máquina virtual.
- El tipo de extensión CustomScript está reservado para el servicio Azure Batch y no se puede invalidar.
- Es posible que algunas extensiones necesiten una identidad administrada de nivel de grupo accesible en el contexto de un nodo de ejecución para funcionar correctamente. Consulte Configuración de identidades administradas en grupos de Batch, si procede, para las extensiones.
Sugerencia
No se pueden agregar extensiones a un grupo existente. Los grupos deben volver a crearse para agregar, quitar o actualizar extensiones.
Extensiones admitidas
Actualmente se pueden instalar las extensiones siguientes al crear un grupo de Batch.
- Extensión de Azure Key Vault para Linux
- Extensión de Azure Key Vault para Windows
- Extensión de análisis de registros y supervisión de Azure Monitor para Linux
- Extensión de análisis de registros y supervisión de Azure Monitor para Windows
- Extensión de Desired State Configuration (DSC) de Azure
- Extensión de Azure Diagnostics para máquinas virtuales de Windows
- Extensión del controlador de GPU de HPC para Windows en AMD
- Extensión del controlador de GPU de HPC para Windows en NVIDIA
- Extensión del controlador de GPU de HPC para Linux en NVIDIA
- Extensión de Microsoft Antimalware para Windows
- Agente de Azure Monitor para Linux
- Agente de Azure Monitor para Windows
Puede solicitar soporte técnico para otros publicadores o tipos de extensión abriendo una solicitud de soporte técnico.
Creación de un grupo con extensiones
En el ejemplo siguiente se crea un grupo de Batch de nodos de Linux o Windows que usa la extensión de Azure Key Vault.
URI DE LA API REST
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Cuerpo de la solicitud para el nodo de 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": {}
}
}
}
Cuerpo de la solicitud para el nodo de 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": {}
}
}
}
Obtención de datos de extensión de un grupo
En el ejemplo siguiente se recuperan los datos de la extensión de Azure Key Vault.
URI DE LA API REST
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Cuerpo de la respuesta
{
"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}"
}
}
Solución de problemas de la extensión de Key Vault
Si la extensión de Key Vault está configurada incorrectamente, el nodo de proceso podría estar en un estado utilizable. Para solucionar problemas de error de extensión de Key Vault, puede establecer temporalmente requireInitialSync en false y volver a implementar el grupo, el nodo de proceso está en estado inactivo, puede iniciar sesión en el nodo de proceso para comprobar los registros de extensiones de KeyVault en busca de errores y corregir los problemas de configuración. Consulte el siguiente vínculo a la documentación de la extensión de Key Vault para obtener más información.
Pasos siguientes
- Obtenga información sobre cómo copiar aplicaciones y datos en nodos de grupo.
- Aprenda sobre cómo trabajar con nodos y grupos.