Udostępnij za pośrednictwem


Używanie rozszerzeń z pulami usługi Batch

Rozszerzenia to małe aplikacje, które ułatwiają konfigurację po aprowizacji i konfigurację w węzłach obliczeniowych usługi Batch. Możesz wybrać dowolne rozszerzenia dozwolone przez usługę Azure Batch i zainstalować je w węzłach obliczeniowych podczas aprowizowania. Następnie rozszerzenie może wykonać jego zamierzone działanie.

Możesz sprawdzić stan na żywo używanych rozszerzeń i pobrać informacje, które zwracają, aby realizować wszelkie możliwości wykrywania, poprawiania lub diagnostyki.

Wymagania wstępne

  • Pule z rozszerzeniami muszą używać konfiguracji maszyny wirtualnej.
  • Typ rozszerzenia CustomScript jest zarezerwowany dla usługi Azure Batch i nie można go zastąpić.
  • Niektóre rozszerzenia mogą wymagać tożsamości zarządzanej na poziomie puli dostępnej w kontekście węzła obliczeniowego w celu prawidłowego działania. Zobacz Konfigurowanie tożsamości zarządzanych w pulach usługi Batch, jeśli ma zastosowanie do rozszerzeń.

Napiwek

Nie można dodać rozszerzeń do istniejącej puli. Pule muszą być tworzone ponownie, aby dodawać, usuwać lub aktualizować rozszerzenia.

Obsługiwane rozszerzenia

Podczas tworzenia puli usługi Batch można obecnie instalować następujące rozszerzenia:

Możesz poprosić o pomoc techniczną dla innych wydawców i/lub typów rozszerzeń, otwierając wniosek o pomoc techniczną.

Tworzenie puli z rozszerzeniami

Poniższy przykład tworzy pulę usługi Batch węzłów systemu Linux/Windows, która korzysta z rozszerzenia usługi Azure Key Vault.

Identyfikator URI interfejsu API REST

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

Treść żądania dla węzła systemu 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/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
    }
  }
}

Treść żądania dla węzła systemu 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/042998e4-36dc-4b7d-8ce3-a7a2c4877d33/resourceGroups/ACR/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testumaforpools": {}
        }
    }
}

Pobieranie danych rozszerzenia z puli

Poniższy przykład pobiera dane z rozszerzenia usługi Azure Key Vault.

Identyfikator URI interfejsu API REST

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

Treść odpowiedzi

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

Rozwiązywanie problemów z rozszerzeniem usługi Key Vault

Jeśli rozszerzenie usługi Key Vault jest niepoprawnie skonfigurowane, węzeł obliczeniowy może być w stanie użytecznym. Aby rozwiązać problemy z niepowodzeniem rozszerzenia usługi Key Vault, możesz tymczasowo ustawić wartość requireInitialSync na wartość false i ponownie wdrożyć pulę, a następnie węzeł obliczeniowy jest w stanie bezczynności, możesz zalogować się do węzła obliczeniowego, aby sprawdzić dzienniki rozszerzeń usługi KeyVault pod kątem błędów i rozwiązać problemy z konfiguracją. Aby uzyskać więcej informacji, zapoznaj się z następującym linkiem do dokumentu rozszerzenia usługi Key Vault.

Następne kroki