Aracılığıyla paylaş


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. Azure Batch tarafından izin verilen 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

  • Uzantılı havuzlar Sanal Makine Yapılandırması kullanmalıdır.
  • CustomScript uzantı türü Azure Batch hizmeti için ayrılmıştır ve geçersiz kılınamaz.
  • Bazı uzantıların düzgün çalışması için bir işlem düğümü bağlamında erişilebilen havuz düzeyinde Yönetilen Kimlik gerekebilir. Uzantılar için uygunsa bkz . Batch havuzlarında yönetilen kimlikleri yapılandırma.

İpucu

Uzantılar var olan 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_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": {}
    }
  }
}

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

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

Havuzdan uzantı verileri 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'i geçici olarak false olarak ayarlayabilir ve havuzunuzu yeniden dağıtabilir, ardından işlem düğümü boşta durumundadır, 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ısını ziyaret edin.

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.