Udostępnij przez


Użyj zarządzanego obrazu, aby stworzyć niestandardową pulę obrazów

Aby utworzyć niestandardową pulę obrazów dla maszyn wirtualnych puli usługi Batch, możesz użyć obrazu zarządzanego do utworzenia obrazu Azure Compute Gallery. Używanie tylko obrazu zarządzanego jest obsługiwane, ale tylko dla wersji interfejsu API do 2019-08-01 włącznie.

Ostrzeżenie

Obsługa tworzenia puli usługi Batch przy użyciu obrazu zarządzanego jest wycofywana po 31 marca 2026 r. Przeprowadź migrację do hostowania obrazów niestandardowych w galerii obliczeń platformy Azure, aby użyć jej do utworzenia niestandardowej puli obrazów w usłudze Batch. Aby uzyskać więcej informacji, zobacz przewodnik migracji.

W tym temacie wyjaśniono, jak utworzyć niestandardową pulę obrazów przy użyciu tylko obrazu zarządzanego.

Wymagania wstępne

  • Zasób obrazu zarządzanego. Aby utworzyć pulę maszyn wirtualnych przy użyciu obrazu niestandardowego, musisz mieć lub utworzyć zasób obrazu zarządzanego w tej samej subskrypcji platformy Azure i regionie co konto usługi Batch. Obraz powinien zostać utworzony na podstawie migawek dysku systemu operacyjnego maszyny wirtualnej i opcjonalnie dołączonych dysków danych.

    • Użyj niestandardowego, unikatowego obrazu dla każdej puli, którą tworzysz.
    • Aby utworzyć pulę z obrazem przy użyciu interfejsów API usługi Batch, określ identyfikator zasobu obrazu, który ma postać /subscriptions/xxxx-xxxxxx-xxxxx-xxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage.
    • Zasób obrazu zarządzanego powinien istnieć przez okres istnienia puli, aby umożliwić skalowanie w górę i można go usunąć po usunięciu puli.
  • Uwierzytelnianie Microsoft Entra. Interfejs API klienta usługi Batch musi używać uwierzytelniania firmy Microsoft Entra. Obsługa usługi Azure Batch dla identyfikatora Entra firmy Microsoft jest udokumentowana w temacie Uwierzytelnianie rozwiązań usługi Batch za pomocą usługi Active Directory.

Przygotowywanie obrazu zarządzanego

Na platformie Azure można przygotować obraz zarządzany z:

  • Migawki dysków systemu operacyjnego i danych maszyny wirtualnej platformy Azure
  • Uogólniona maszyna wirtualna platformy Azure z dyskami zarządzanymi
  • Ogólny obraz VHD na lokalnym serwerze przesłany do chmury

Aby niezawodnie skalować pule usługi Batch przy użyciu obrazu zarządzanego, zalecamy utworzenie obrazu zarządzanego przy użyciu tylko pierwszej metody: przy użyciu migawek dysków maszyny wirtualnej. W poniższych krokach pokazano, jak przygotować maszynę wirtualną, utworzyć migawkę i utworzyć zarządzany obraz dysku na podstawie migawki.

Przygotowywanie maszyny wirtualnej

Jeśli tworzysz nową maszynę wirtualną dla obrazu, użyj obrazu witryny Azure Marketplace obsługiwanego przez usługę Batch jako obrazu podstawowego dla obrazu zarządzanego. Jako obraz podstawowy można używać tylko obrazów własnych. Aby uzyskać pełną listę odwołań do obrazów Azure Marketplace obsługiwanych przez usługę Azure Batch, zobacz Lista obsługiwanych obrazów.

Uwaga / Notatka

Nie można użyć obrazu innej firmy, który ma dodatkowe postanowienia licencyjne i zakupu jako obraz podstawowy. Aby uzyskać informacje na temat tych obrazów Marketplace, zobacz wskazówki dotyczące maszyn wirtualnych z systemem Linux lub Windows.

Aby użyć obrazu innej firmy, możesz użyć galerii obliczeń platformy Azure. Aby uzyskać więcej informacji, zobacz Tworzenie niestandardowej puli obrazów przy użyciu galerii obliczeniowej platformy Azure .

  • Upewnij się, że maszyna wirtualna została utworzona przy użyciu dysku zarządzanego. Jest to domyślne ustawienie magazynu podczas tworzenia maszyny wirtualnej.
  • Nie instaluj rozszerzeń platformy Azure, takich jak rozszerzenie Custom Script, w maszynie wirtualnej. Jeśli obraz zawiera wstępnie zainstalowane rozszerzenie, platforma Azure może napotkać problemy podczas wdrażania puli usługi Batch.
  • W przypadku korzystania z dołączonych dysków danych należy zainstalować i sformatować dyski z maszyny wirtualnej, aby ich używać.
  • Upewnij się, że podstawowy obraz systemu operacyjnego korzysta z domyślnego dysku tymczasowego. Agent węzła usługi Batch oczekuje obecnie domyślnego dysku tymczasowego.
  • Upewnij się, że dysk systemu operacyjnego nie jest zaszyfrowany.
  • Po uruchomieniu maszyny wirtualnej połącz się z nią za pośrednictwem protokołu RDP (dla systemu Windows) lub SSH (dla systemu Linux). Zainstaluj wszelkie niezbędne oprogramowanie lub skopiuj żądane dane.

Utwórz migawkę maszyny wirtualnej

Migawka to pełna kopia dysku VHD w trybie tylko do odczytu. Aby utworzyć migawkę dysków systemu operacyjnego lub danych maszyn wirtualnych, możesz użyć witryny Azure Portal lub narzędzi wiersza polecenia. Aby uzyskać instrukcje i opcje tworzenia migawki, zobacz wskazówki dotyczące maszyn wirtualnych.

Twórz obraz na podstawie jednej lub więcej migawek

Aby utworzyć zarządzany obraz z migawki, użyj narzędzi wiersza polecenia platformy Azure, takich jak polecenie az image create. Obraz można utworzyć, określając migawkę dysku systemu operacyjnego i opcjonalnie co najmniej jedną migawkę dysku danych.

Utwórz pulę na podstawie obrazu zarządzanego

Po znalezieniu identyfikatora zasobu obrazu zarządzanego utwórz niestandardową pulę obrazów na podstawie tego obrazu. W poniższych krokach pokazano, jak utworzyć niestandardową pulę obrazów, używając Batch Service lub Batch Management.

Uwaga / Notatka

Upewnij się, że tożsamość używana do uwierzytelniania Microsoft Entra ma uprawnienia do zasobu obrazów. Zobacz Uwierzytelnianie rozwiązań usługi Batch za pomocą usługi Active Directory.

Zasób obrazu zarządzanego musi istnieć przez okres istnienia puli. Jeśli podstawowy zasób zostanie usunięty, nie można skalować puli.

Zestaw SDK platformy .NET usługi Batch

private static VirtualMachineConfiguration CreateVirtualMachineConfiguration(ImageReference imageReference)
{
    return new VirtualMachineConfiguration(
        imageReference: imageReference,
        nodeAgentSkuId: "batch.node.windows amd64");
}

private static ImageReference CreateImageReference()
{
    return new ImageReference(
        virtualMachineImageId: "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image definition name}");
}

private static void CreateBatchPool(BatchClient batchClient, VirtualMachineConfiguration vmConfiguration)
{
    try
    {
        CloudPool pool = batchClient.PoolOperations.CreatePool(
            poolId: PoolId,
            targetDedicatedComputeNodes: PoolNodeCount,
            virtualMachineSize: PoolVMSize,
            virtualMachineConfiguration: vmConfiguration);

        pool.Commit();
    }

Interfejs API REST zarządzania usługą Batch

URI API REST

 PUT https://management.azure.com/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Batch/batchAccounts/{account name}/pools/{pool name}?api-version=2020-03-01

Treść żądania

 {
   "properties": {
     "vmSize": "{VM size}",
     "deploymentConfiguration": {
       "virtualMachineConfiguration": {
         "imageReference": {
           "id": "/subscriptions/{sub id}/resourceGroups/{resource group name}/providers/Microsoft.Compute/images/{image name}"
         },
         "nodeAgentSkuId": "{Node Agent SKU ID}"
       }
     }
   }
 }

Rozważania dotyczące dużych pul

Jeśli planujesz utworzyć pulę z setkami maszyn wirtualnych lub więcej przy użyciu obrazu niestandardowego, ważne jest, aby postępować zgodnie z poprzednimi wskazówkami dotyczącymi używania obrazu utworzonego na podstawie migawki maszyny wirtualnej.

Należy również pamiętać o następujących kwestiach:

  • Limity rozmiaru — usługa Batch ogranicza rozmiar puli do 2500 dedykowanych węzłów obliczeniowych lub 1000 węzłów typu spot, gdy używasz obrazu niestandardowego.

    Jeśli używasz tego samego obrazu (lub wielu obrazów na podstawie tej samej migawki bazowej) do utworzenia wielu pul, łączna liczba węzłów obliczeniowych w pulach nie może przekroczyć powyższych limitów. Nie zalecamy używania obrazu ani jego źródłowej migawki dla więcej niż jednej puli.

    Limity mogą zostać zmniejszone, jeśli skonfigurujesz pulę z przychodzącymi pulami nat.

  • Limit czasu zmiany rozmiaru — jeśli pula zawiera stałą liczbę węzłów (nie jest skalowana automatycznie), zwiększ parametr resizeTimeout puli do wartości takiej jak 20–30 minut. Jeśli pula nie osiągnie rozmiaru docelowego w okresie przekroczenia limitu czasu, wykonaj inną operację zmiany rozmiaru.

    Jeśli planujesz pulę z więcej niż 300 węzłami obliczeniowymi, może być konieczne wielokrotne zmienianie rozmiaru puli w celu osiągnięcia rozmiaru docelowego.

Korzystając z Azure Compute Gallery, można tworzyć większe pule z dostosowanymi obrazami wraz z większą liczbą replik obrazów udostępnionych, co zapewnia ulepszone korzyści związane z wydajnością, takie jak skrócenie czasu przygotowania węzłów do pracy.

Zagadnienia dotyczące korzystania z narzędzia Packer

Tworzenie zasobu obrazu zarządzanego bezpośrednio za pomocą narzędzia Packer można wykonać tylko przy użyciu kont usługi Batch w trybie subskrypcji użytkownika. W przypadku kont w trybie usługi Batch najpierw należy utworzyć VHD, a następnie zaimportować go do zarządzanego zasobu obrazu. W zależności od trybu alokacji puli (subskrypcji użytkownika lub usługi Batch) kroki tworzenia zasobu obrazu zarządzanego różnią się.

Upewnij się, że zasób użyty do utworzenia obrazu zarządzanego istnieje dla okresów istnienia dowolnej puli odwołującej się do obrazu niestandardowego. Nieprzestrzeganie tego może prowadzić do problemów z alokacją puli lub/i zmianą rozmiaru.

Jeśli obraz lub bazowy zasób zostanie usunięty, może zostać wyświetlony błąd podobny do: There was an error encountered while performing the last resize on the pool. Please try resizing the pool again. Code: AllocationFailed. Jeśli wystąpi ten błąd, upewnij się, że zasób bazowy nie został usunięty.

Aby uzyskać więcej informacji na temat tworzenia maszyny wirtualnej przy użyciu narzędzia Packer, zobacz Tworzenie obrazu systemu Linux za pomocą narzędzia Packer lub Tworzenie obrazu systemu Windows za pomocą narzędzia Packer.

Dalsze kroki