Batch havuzlarıyla uzantılar kullanma

Uzantılar, Batch işlem düğümlerinde sağlama sonrası yapılandırmayı ve kurulumu kolaylaştıran küçük uygulamalardır. İzin verilebilen uzantılardan herhangi birini seçebilir ve sağlanan işlem düğümlerine yükleyebilirsiniz. Bundan sonra uzantı hedeflenen işlemi gerçekleştirebilir.

Kullandığınız uzantıların canlı durumunu denetleyebilir ve bunların döndüreceği bilgileri alıp herhangi bir algılama, düzeltme veya tanılama özelliğini takip edebilirsiniz.

Önkoşullar

Tip

Uzantılar mevcut bir havuza eklenemez. Uzantı eklemek, kaldırmak veya güncelleştirmek için havuzların yeniden oluşturulması gerekir.

Desteklenen uzantılar

Batch havuzu oluşturulurken şu anda aşağıdaki uzantılar yüklenebilir:

Destek isteği açarak diğer yayımcılar ve/veya uzantı türleri için destek isteyebilirsiniz.

Uzantılarla havuz oluşturma

Aşağıdaki örnek, Azure Key Vault uzantısını kullanan linux/Windows düğümlerinden oluşan bir Batch havuzu oluşturur.

REST API URI'si

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

Linux düğümü için İstek Gövdesi

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

Windows düğümü için İstek Gövdesi

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

Havuzdan ek veriler alma

Aşağıdaki örnek, Azure Key Vault uzantısından veri alır.

REST API URI'si

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

Yanıt Gövdesi

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

Key Vault Uzantısı sorunlarını giderme

Key Vault uzantısı yanlış yapılandırılmışsa işlem düğümü kullanılabilir durumda olabilir. Key Vault uzantısı hatasını gidermek için requireInitialSync'yi false olarak geçici ayarlayabilir ve havuzunuzu yeniden dağıtabilirsiniz. İşlem düğümü boşta durumunda olduğunda, KeyVault uzantı günlüklerinde hata olup olmadığını denetlemek ve yapılandırma sorunlarını düzeltmek için işlem düğümünde oturum açabilirsiniz. Daha fazla bilgi için aşağıdaki Key Vault uzantısı belge bağlantılarını ziyaret edin.

Uygulama Sağlık uzantısıyla ilgili dikkat edilmesi gerekenler

Düğümde çalışan Batch Node Aracısı her zaman aracının sistem durumunu döndüren bir HTTP sunucusu başlatır. Bu HTTP sunucusu yerel IP adresi 127.0.0.1 ve bağlantı noktası 29879'da dinler. Her zaman 200 durumu döndürür, ancak yanıt gövdesi sağlıklı veya sağlıksız olabilir. Diğer yanıtlar (veya eksiklik) "bilinmeyen" durum olarak kabul edilir. Bu kurulum, resmi "Uygulama Durumu uzantısı" belgelerine göre "Zengin Sistem Durumu" sağlayan bir HTTP sunucusu çalıştırma yönergeleriyle aynıdır.

Kendi sağlık sunucunuzu kurarsanız, HTTP sunucusunun özel bir bağlantı noktası üzerinde dinlediğinden emin olun. Sistem durumu sunucunuz Batch Node Aracısı sunucusunu sorgulamalı ve bileşik sistem durumu sonucu oluşturmak için sistem durumu sinyalinizle birleştirmelidir. Aksi takdirde, düzgün çalışan bir Yığın Aracısı olmayan "sağlıklı" bir düğümle karşılaşabilirsiniz.

Sonraki adımlar

  • Uygulamaları ve verileri havuz düğümlerine kopyalamanın çeşitli yolları hakkında bilgi edinin.
  • Düğümler ve havuzlarla çalışma hakkında daha fazla bilgi edinin.