Sdílet prostřednictvím


Použití rozšíření s fondy služby Batch

Rozšíření jsou malé aplikace, které usnadňují konfiguraci a nastavení po zprovoznění na výpočetních uzlech systému Batch. Můžete vybrat libovolná povolená rozšíření a nainstalovat je na výpočetní uzly během jejich zřizování. Pak může rozšíření provést zamýšlenou operaci.

Můžete zkontrolovat aktuální stav rozšíření, která používáte, a získat informace, které se vrátí, pro sledování jakýchkoli možností detekce, opravy nebo diagnostiky.

Prerequisites

Tip

Rozšíření nelze přidat do existujícího fondu. Fondy musí být znovu vytvořeny pro přidání, odebrání nebo aktualizaci rozšíření.

Podporovaná rozšíření

Při vytváření fondu Batch je možné v současné době nainstalovat následující rozšíření:

Pokud chcete požádat o podporu pro jiné vydavatele nebo typy rozšíření, otevřete žádost o podporu.

Vytvořte fond s rozšířeními

Následující příklad vytvoří fond batch linuxových a windows uzlů, které používají rozšíření Azure Key Vault.

Identifikátor URI v REST API

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

Tělo požadavku pro uzel Linuxu

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

Tělo požadavku pro uzel Windows

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

Získejte data rozšíření z fondu

Následující příklad načte data z rozšíření Azure Key Vault.

Identifikátor URI v REST API

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

Tělo odpovědi

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

Řešení potíží s rozšířením služby Key Vault

Pokud je rozšíření služby Key Vault nakonfigurované nesprávně, může být výpočetní uzel v použitelném stavu. Při řešení potíží se selháním rozšíření služby Key Vault můžete dočasně nastavit requireInitialSync na false a znovu nasadit fond. Jakmile je výpočetní uzel ve stavu nečinnosti, můžete se přihlásit k výpočetnímu uzlu a zkontrolovat chyby v protokolech rozšíření KeyVault a opravit problémy s konfigurací. Další informace najdete na následujících odkazech na dokumentaci k rozšíření služby Key Vault.

Důležité informace o rozšíření Služby Application Health

Agent dávkového uzlu běžící na uzlu vždy spustí HTTP server, který navrací stav zdraví agenta. Tento server HTTP naslouchá na místní IP adrese 127.0.0.1 a portu 29879. Vždy vrátí stav 200, ale s tělem odpovědi, které je buď zdravé, nebo nezdravé. Jakákoli jiná odpověď (nebo její nedostatek) se považuje za "neznámý" stav. Toto nastavení je v souladu s pokyny pro provozování serveru HTTP, který poskytuje „Bohatý stav zdraví“ podle oficiální dokumentace k „Rozšíření stavu aplikace“.

Pokud nastavíte vlastní server zdravotních kontrol, zajistěte, že server HTTP naslouchá na jedinečném portu. Váš server pro monitorování stavu by se měl dotazovat na server agenta dávkového uzlu a kombinovat informace s vaším signálem stavu, aby mohl vygenerovat kombinovaný výsledek stavu. Jinak můžete skončit s "v pořádku" uzlem, který nemá správně funkčního Batch agenta.

Další kroky