Usar extensões com pools do Lote
Extensões são aplicativos pequenos que facilitam a definição e a configuração pós-provisionamento em nós de computação do Lote. Você pode selecionar qualquer uma das extensões permitidas pelo Lote do Azure e instalá-las nos nós de computação conforme elas são provisionadas. Depois disso, a extensão pode executar a operação pretendida.
Você pode verificar o status ao vivo das extensões utilizadas e recuperar as informações retornadas para buscar recursos de detecção, correção ou diagnóstico.
Pré-requisitos
- Os pools com extensões precisam usar a Configuração de Máquina Virtual.
- O tipo de extensão CustomScript é reservado para o serviço do Lote do Azure e não pode ser substituído.
- Algumas extensões podem precisar que a Identidade Gerenciada no nível do pool seja acessível no contexto de um nó de computação para funcionar corretamente. Confira configuração de identidades gerenciadas em pools do Lote, se aplicável às extensões.
Dica
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 com suporte
As extensões a seguir no momento podem ser instaladas ao criar um pool do Lote:
- Extensão do Azure Key Vault para Linux
- Extensão do Azure Key Vault para Windows
- Extensão de monitoramento e análise de logs do Azure Monitor para Linux
- Extensão de monitoramento e análise de logs do Azure Monitor para Windows
- Extensão da DSC (Desired State Configuration) do Azure
- Extensão de Diagnóstico do Azure para VMs do Windows
- Extensão de driver de GPU HPC para Windows no AMD
- Extensão de driver de GPU HPC para Windows na NVIDIA
- Extensão de driver de GPU HPC para Linux na NVIDIA
- Extensão de Antimalware da Microsoft para Windows
- Saiba mais sobre o 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 nós do Linux/Windows do Lote que usa a extensão do 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 de nó do 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 de 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 do 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
Corpo da 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 do Key Vault
Se a extensão do Key Vault 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, quando o nó de computação estiver em estado ocioso, você poderá fazer logon 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 link do documento de extensão do Key Vault a seguir para obter mais informações.
Próximas etapas
- Aprenda sobre as várias maneiras de copiar aplicativos e dados para nós de pool.
- Saiba mais sobre como trabalhar com nós e pools.