Använd tillägg med Batch-pooler

Tillägg är små program som underlättar konfiguration och installation efter etablering på Batch-beräkningsnoder. Du kan välja något av de tillåtna tilläggen och installera dem på beräkningsnoderna när de etableras. Därefter kan tillägget utföra sin avsedda åtgärd.

Du kan kontrollera livestatusen för de tillägg som du använder och hämta den information som de returnerar för att kunna använda identifierings-, korrigerings- eller diagnostikfunktioner.

Förutsättningar

  • Pooler med tillägg måste använda Konfiguration av virtuell maskin.
  • CustomScript-tilläggstypen är reserverad för Azure Batch-tjänsten och kan inte åsidosättas.
  • Vissa tillägg kan behöva en hanterad identitet på poolnivå, som är tillgänglig i kontexten av en beräkningsnod, för att fungera korrekt. Se konfigurera hanterade identiteter i Batch-pooler om det är tillämpligt för tilläggen.

Tips

Tillägg kan inte läggas till i en befintlig pool. Pooler måste återskapas för att lägga till, ta bort eller uppdatera tillägg.

Tillägg som stöds

Följande tillägg kan för närvarande installeras när du skapar en Batch-pool:

Du kan begära support för andra utgivare och/eller tilläggstyper genom att öppna en supportbegäran.

Skapa en pool med tillägg

I följande exempel skapas en Batch-pool med Linux-/Windows-noder som använder Azure Key Vault-tillägget.

REST API-URI

 PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroup>/providers/Microsoft.Batch/batchAccounts/<batchaccountName>/pools/<batchpoolName>?api-version=2021-01-01

Begärandetext för Linux-nod

{
  "name": "test1",
  "type": "Microsoft.Batch/batchAccounts/pools",
  "properties": {
    "vmSize": "STANDARD_D2S_V5",
    "taskSchedulingPolicy": {
      "nodeFillType": "Pack"
    },
    "deploymentConfiguration": {
      "virtualMachineConfiguration": {
        "imageReference": {
          "publisher": "Canonical",
          "offer": "ubuntu-24_04-lts",
          "sku": "server",
          "version": "latest"
        },
        "nodeAgentSkuId": "batch.node.ubuntu 24.04",
        "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": {}
    }
  }
}

Begärandetext för Windows-nod

{
    "name": "test1",
    "type": "Microsoft.Batch/batchAccounts/pools",
    "properties": {
        "vmSize": "STANDARD_D4S_V5",
        "taskSchedulingPolicy": {
            "nodeFillType": "Pack"
        },
        "deploymentConfiguration": {
            "virtualMachineConfiguration": {
                "imageReference": {
                    "publisher": "microsoftwindowsserver",
                    "offer": "windowsserver",
                    "sku": "2025-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": {}
        }
    }
}

Hämta tilläggsdata från en pool

I följande exempel hämtas data från Azure Key Vault-tillägget.

REST API-URI

 GET https://<accountName>.<region>.batch.azure.com/pools/<poolName>/nodes/<tvmNodeName>/extensions/secretext?api-version=2010-01-01

Svarsdel

{
  "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}"
  }
}

Felsökning av Key Vault-tillägget

Om Key Vault-tillägget har konfigurerats felaktigt kan beräkningsnoden vara i ett användbart tillstånd. Om du vill felsöka fel med Key Vault-tillägget kan du tillfälligt ange requireInitialSync till false och distribuera om din pool. När beräkningsnoden är i inaktivt tillstånd kan du logga in på beräkningsnoden för att söka efter fel i KeyVault-tilläggsloggarna och åtgärda konfigurationsproblemen. Mer information finns i följande nyckelvalvstilläggsdokumentlänkar.

Överväganden för Application Health-tillägget

Batch Node Agent som körs på noden startar alltid en HTTP-server som returnerar agentens hälsostatus. Den här HTTP-servern lyssnar på den lokala IP-adressen 127.0.0.1 och port 29879. Den returnerar alltid statusen 200, men svarsinnehållet är antingen hälsosamt eller ohälsosamt. Alla andra svar (eller brist på detta) anses vara en "okänd" status. I denna konfiguration följer man riktlinjerna för att köra en HTTP-server som tillhandahåller ett "Rich Health State" enligt den officiella dokumentationen för "Application Health-tillägget".

Om du konfigurerar en egen hälsoserver kontrollerar du att HTTP-servern lyssnar på en unik port. Din hälsoserver bör fråga Batch Node Agent-servern och kombinera med din hälsosignal för att generera ett sammansatt hälsoresultat. Annars kan du få en "felfri" nod som inte har en korrekt fungerande Batch-agent.

Nästa steg