Usar extensões com pools de lotes
As extensões são pequenos aplicativos que facilitam a configuração e a configuração pós-provisionamento em nós de computação em lote. Você pode selecionar qualquer uma das extensões permitidas pelo Lote do Azure e instalá-las nos nós de computação à medida que são provisionadas. Depois disso, a extensão pode realizar a operação pretendida.
Você pode verificar o status em tempo real das extensões que você usa e recuperar as informações que elas retornam para buscar quaisquer recursos de deteção, correção ou diagnóstico.
Pré-requisitos
- Os pools com extensões devem usar a Configuração da Máquina Virtual.
- O tipo de extensão CustomScript está reservado para o serviço Batch do Azure e não pode ser substituído.
- Algumas extensões podem precisar de Identidade Gerenciada no nível do pool acessível no contexto de um nó de computação para funcionar corretamente. Consulte configurando identidades gerenciadas em pools de lotes , se aplicável para as extensões.
Gorjeta
As extensões não podem ser adicionadas a um pool existente. Os pools devem ser recriados para adicionar, remover ou atualizar extensões.
Extensões suportadas
Atualmente, as seguintes extensões podem ser instaladas ao criar um pool de lotes:
- Extensão Azure Key Vault para Linux
- Extensão do Azure Key Vault para Windows
- Extensão de análise e monitoramento de logs do Azure Monitor para Linux
- Azure Monitor Logs análise e extensão de monitoramento para Windows
- Extensão de Configuração de Estado Desejado (DSC) do Azure
- Extensão de Diagnóstico do Azure para VMs do Windows
- Extensão do driver de GPU HPC para Windows na AMD
- Extensão de driver de GPU HPC para Windows na NVIDIA
- Extensão do driver de GPU HPC para Linux na NVIDIA
- Extensão Microsoft Antimalware para Windows
- Agente do Azure Monitor para Linux
- Agente do Azure Monitor para Windows
Você pode solicitar suporte para outros editores e/ou tipos de extensão abrindo uma solicitação de suporte.
Criar um pool com extensões
O exemplo a seguir cria um pool de lotes de nós Linux/Windows que usa a extensão Azure Key Vault.
URI da API REST
PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01
Corpo da solicitação para o nó 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 da solicitação para o nó do 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": {}
}
}
}
Obter dados de extensão de um pool
O exemplo a seguir recupera dados da extensão Azure Key Vault.
URI da API REST
GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01
Organismo de resposta
{
"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}"
}
}
Solução de problemas da extensão Key Vault
Se a extensão do Cofre da Chave estiver configurada incorretamente, o nó de computação poderá estar em um estado utilizável. Para solucionar problemas de falha de extensão do Key Vault, você pode definir temporariamente requireInitialSync como false e reimplantar seu pool, em seguida, o nó de computação está em estado ocioso, você pode fazer login no nó de computação para verificar se há erros nos logs de extensão do KeyVault e corrigir os problemas de configuração. Visite o seguinte link do documento de extensão do Key Vault para obter mais informações.
Próximos passos
- Saiba mais sobre várias maneiras de copiar aplicativos e dados para nós de pool.
- Saiba mais sobre como trabalhar com nós e pools.