Tworzenie puli usługi Azure Batch w sieci wirtualnej

Podczas tworzenia puli usługi Azure Batch można aprowizować pulę w podsieci określonej sieci wirtualnej platformy Azure. W tym artykule wyjaśniono, jak skonfigurować pulę usługi Batch w sieci wirtualnej.

Dlaczego warto używać sieci wirtualnej?

Węzły obliczeniowe w puli mogą komunikować się ze sobą, takie jak uruchamianie zadań obejmujących wiele wystąpień, bez konieczności używania oddzielnej sieci wirtualnej. Jednak domyślnie węzły w puli nie mogą komunikować się z żadną maszyną wirtualną, która znajduje się poza pulą, na przykład licencją lub serwerami plików.

Aby umożliwić węzłom obliczeniowym bezpieczną komunikację z innymi maszynami wirtualnymi lub siecią lokalną, możesz aprowizować pulę w podsieci sieci wirtualnej.

Wymagania wstępne

  • Uwierzytelnianie. Aby korzystać z sieci wirtualnej platformy Azure, interfejs API klienta usługi Batch musi używać uwierzytelniania entra firmy Microsoft. Aby dowiedzieć się więcej, zobacz Uwierzytelnianie rozwiązań usługi Batch za pomocą usługi Active Directory.

  • Sieć wirtualna platformy Azure. Aby przygotować sieć wirtualną z co najmniej jedną podsiecią z wyprzedzeniem, możesz użyć witryny Azure Portal, programu Azure PowerShell, interfejsu wiersza polecenia platformy Microsoft Azure lub innych metod.

    • Aby utworzyć sieć wirtualną opartą na usłudze Azure Resource Manager, zobacz Tworzenie sieci wirtualnej. Sieć wirtualna oparta na usłudze Resource Manager jest zalecana w przypadku nowych wdrożeń i jest obsługiwana tylko w pulach korzystających z konfiguracji maszyny wirtualnej.

    • Aby utworzyć klasyczną sieć wirtualną, zobacz Tworzenie sieci wirtualnej (klasycznej) z wieloma podsieciami. Klasyczna sieć wirtualna jest obsługiwana tylko w pulach korzystających z konfiguracji usług Cloud Services.

      Ważne

      Unikaj używania sieci wirtualnej puli usługi Azure Batch w wersji 172.17.0.0/16. Jest to ustawienie domyślne dla sieci mostka platformy Docker i może powodować konflikt z innymi sieciami, które chcesz połączyć z siecią wirtualną. Utworzenie sieci wirtualnej dla puli usługi Azure Batch wymaga starannego planowania infrastruktury sieciowej.

Ogólne wymagania dotyczące sieci wirtualnej

  • Sieć wirtualna musi znajdować się w tej samej subskrypcji i regionie co konto usługi Batch używane do utworzenia puli.

  • Podsieć określona dla puli musi mieć wystarczającą liczbę nieprzypisanych adresów IP, aby pomieścić liczbę maszyn wirtualnych przeznaczonych dla puli, wystarczy, aby pomieścić targetDedicatedNodes właściwości i targetLowPriorityNodes puli. Jeśli podsieć nie ma wystarczającej liczby nieprzypisanych adresów IP, pula częściowo przydzieli węzły obliczeniowe, a następnie wystąpi błąd dotyczący zmiany rozmiaru.

  • Jeśli nie używasz uproszczonej komunikacji węzła obliczeniowego, musisz rozwiązać problemy z punktami końcowymi usługi Azure Storage przy użyciu dowolnych niestandardowych serwerów DNS obsługujących sieć wirtualną. W szczególności rozpoznawalne powinny być adresy URL formularzy <account>.table.core.windows.net, <account>.queue.core.windows.net i <account>.blob.core.windows.net.

  • Wiele pul można utworzyć w tej samej sieci wirtualnej lub w tej samej podsieci (o ile ma wystarczającą przestrzeń adresową). Pojedyncza pula nie może istnieć w wielu sieciach wirtualnych lub podsieciach.

Inne wymagania dotyczące sieci wirtualnej różnią się w zależności od tego, czy pula usługi Batch znajduje się w VirtualMachineConfiguration obiekcie , czy CloudServiceConfiguration. VirtualMachineConfiguration w przypadku pul usługi Batch jest zalecane, ponieważ CloudServiceConfiguration pule są przestarzałe.

Ważne

Pule usługi Batch można skonfigurować w jednym z dwóch trybów komunikacji węzła. Klasyczny tryb komunikacji węzła to miejsce, w którym usługa Batch inicjuje komunikację z węzłami obliczeniowymi. Uproszczony tryb komunikacji węzła to miejsce, w którym węzły obliczeniowe inicjują komunikację z usługą Batch.

  • Każda sieć wirtualna lub równorzędna sieć wirtualna, która będzie używana dla pul usługi Batch, nie powinna mieć nakładających się zakresów adresów IP z programową siecią zdefiniowaną przez oprogramowanie ani routingiem w węzłach obliczeniowych. Typowym źródłem konfliktów jest użycie środowiska uruchomieniowego kontenera, takiego jak docker. Platforma Docker utworzy domyślny mostek sieciowy ze zdefiniowanym zakresem podsieci 172.17.0.0/16. Wszystkie usługi uruchomione w sieci wirtualnej w tej domyślnej przestrzeni adresowej IP będą powodować konflikt z usługami w węźle obliczeniowym, takimi jak dostęp zdalny za pośrednictwem protokołu SSH.

Pule w konfiguracji maszyny wirtualnej

Wymagania:

  • Obsługiwane sieci wirtualne: tylko sieci wirtualne oparte na usłudze Azure Resource Manager.
  • Identyfikator podsieci: podczas określania podsieci przy użyciu interfejsów API usługi Batch użyj identyfikatora zasobu podsieci. Identyfikator podsieci ma postać:

/subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.Network/virtualNetworks/{network}/subnets/{subnet}

  • Uprawnienia: sprawdź, czy zasady zabezpieczeń lub blokady w subskrypcji lub grupie zasobów sieci wirtualnej ograniczają uprawnienia użytkownika do zarządzania siecią wirtualną.
  • Zasoby sieciowe: usługa Batch automatycznie tworzy więcej zasobów sieciowych w grupie zasobów zawierającej sieć wirtualną.

Ważne

Dla każdego 100 dedykowanych lub o niskim priorytcie węzłów usługa Batch tworzy jedną sieciową grupę zabezpieczeń, jeden publiczny adres IP i jeden moduł równoważenia obciążenia. Te zasoby są ograniczone przez limity zasobów subskrypcji. W przypadku dużych pul może być konieczne zażądanie zwiększenia limitu przydziału dla co najmniej jednego z tych zasobów.

Sieciowe grupy zabezpieczeń dla pul konfiguracji maszyny wirtualnej: ustawienie domyślne usługi Batch

Usługa Batch tworzy sieciową grupę zabezpieczeń na poziomie interfejsu sieciowego każdego wdrożenia zestawu skalowania maszyn wirtualnych w puli usługi Batch. W przypadku pul, które nie mają publicznych adresów IP w ramach simplified komunikacji węzła obliczeniowego, sieciowe grupy zabezpieczeń nie są tworzone.

Aby zapewnić niezbędną komunikację między węzłami obliczeniowymi i usługą Batch, te sieciowe grupy zabezpieczeń zostały skonfigurowane w taki sposób, aby:

  • Przychodzący ruch TCP na portach 29876 i 29877 z adresów IP usługi Batch odpowiadających funkcji BatchNodeManagement.tag usługi regionu . Ta reguła jest tworzona tylko w classic trybie komunikacji puli.
  • Przychodzący ruch TCP na porcie 22 (węzłach systemu Linux) lub porcie 3389 (węzłach systemu Windows) w celu zezwolenia na dostęp zdalny dla protokołu SSH lub RDP na portach domyślnych, odpowiednio. W przypadku niektórych typów zadań z wieloma wystąpieniami w systemie Linux, takich jak MPI, może być konieczne zezwolenie na ruch SSH dla adresów IP w podsieci zawierającej węzły obliczeniowe usługi Batch. Niektóre środowiska uruchomieniowe MPI mogą wymagać uruchomienia za pośrednictwem protokołu SSH, który jest zwykle kierowany w prywatnej przestrzeni adresowej IP. Ten ruch może być blokowany dla reguł sieciowej grupy zabezpieczeń na poziomie podsieci.
  • Wychodzący dowolny ruch na porcie 443 do adresów IP usługi Batch odpowiadających funkcji BatchNodeManagement.tag usługi regionu .
  • Ruch wychodzący na dowolny port do sieci wirtualnej. Ta reguła może zostać zmieniona na reguły sieciowej grupy zabezpieczeń na poziomie podsieci.
  • Ruch wychodzący na dowolny port do Internetu. Ta reguła może zostać zmieniona na reguły sieciowej grupy zabezpieczeń na poziomie podsieci.

Ważne

Należy zachować ostrożność w przypadku modyfikowania lub dodawania reguł ruchu przychodzącego lub wychodzącego w sieciowych grupach zabezpieczeń skonfigurowanych w usłudze Batch. Jeśli komunikacja z węzłami obliczeniowymi w określonej podsieci zostanie odrzucona przez sieciową grupę zabezpieczeń, usługa Batch ustawi stan węzłów obliczeniowych na bezużyteczny. Ponadto żadne blokady zasobów nie powinny być stosowane do żadnego zasobu utworzonego przez usługę Batch, ponieważ może to uniemożliwić czyszczenie zasobów w wyniku akcji zainicjowanych przez użytkownika, takich jak usunięcie puli.

Sieciowe grupy zabezpieczeń dla pul konfiguracji maszyny wirtualnej: określanie reguł na poziomie podsieci

Jeśli masz sieciową grupę zabezpieczeń skojarzona z podsiecią dla węzłów obliczeniowych usługi Batch, musisz skonfigurować tę sieciową grupę zabezpieczeń z co najmniej regułami zabezpieczeń dla ruchu przychodzącego i wychodzącego, które są wyświetlane w poniższych tabelach.

Ostrzeżenie

Adresy IP usługi Batch mogą się zmieniać w czasie. W związku z tym należy użyć elementu BatchNodeManagement.tag usługi region dla reguł sieciowej grupy zabezpieczeń wskazanych w poniższych tabelach. Unikaj wypełniania reguł sieciowej grupy zabezpieczeń z określonymi adresami IP usługi Batch.

Reguły zabezpieczeń dla ruchu przychodzącego

Tag usługi źródłowej lub adresy IP Porty docelowe Protokół Tryb komunikacji puli Wymagania
BatchNodeManagement.tag usługi regionu 29876-29877 TCP Klasyczny Tak
Źródłowe adresy IP na potrzeby zdalnego uzyskiwania dostępu do węzłów obliczeniowych 3389 (Windows), 22 (Linux) TCP Klasyczny lub uproszczony Nie.

Skonfiguruj ruch przychodzący na porcie 3389 (Windows) lub 22 (Linux) tylko wtedy, gdy musisz zezwolić na zdalny dostęp do węzłów obliczeniowych spoza źródeł na domyślnych portach RDP lub SSH. Może być konieczne zezwolenie na ruch SSH w systemie Linux, jeśli potrzebujesz obsługi zadań obejmujących wiele wystąpień z określonymi środowiskami uruchomieniowymi interfejsu MPI (Message Passing Interface) w podsieci zawierającej węzły obliczeniowe usługi Batch, ponieważ ruch może być blokowany dla reguł sieciowej grupy zabezpieczeń na poziomie podsieci. Ruch MPI zazwyczaj odbywa się za pośrednictwem prywatnej przestrzeni adresowej IP, ale może się różnić między środowiskami uruchomieniowymi MPI i konfiguracją środowiska uruchomieniowego. Zezwalanie na ruch na tych portach nie jest ściśle wymagane, aby węzły obliczeniowe puli mogły być używane. Możesz również wyłączyć domyślny dostęp zdalny na tych portach za pomocą konfigurowania punktów końcowych puli.

Reguły zabezpieczeń dla ruchu wychodzącego

Docelowy tag usługi Porty docelowe Protokół Tryb komunikacji puli Wymagania
BatchNodeManagement.tag usługi regionu 443 * Uproszczone Tak
Magazynu.tag usługi regionu 443 TCP Klasyczny Tak

Ruch wychodzący do usługi BatchNodeManagement.Tag usługi regionu jest wymagany w trybie komunikacji puli, classic jeśli używasz zadań Menedżera zadań lub jeśli zadania muszą komunikować się z powrotem do usługi Batch. Dla ruchu wychodzącego do usługi BatchNodeManagement.region w simplified trybie komunikacji puli, usługa Batch obecnie używa tylko protokołu TCP, ale protokół UDP może być wymagany do zapewnienia przyszłej zgodności. W przypadku pul bez publicznych adresów IP korzystających z simplified trybu komunikacji i prywatnego punktu końcowego zarządzania węzłem sieciowa grupa zabezpieczeń nie jest potrzebna. Aby uzyskać więcej informacji na temat reguł zabezpieczeń dla ruchu wychodzącego dla elementu BatchNodeManagement.tag usługi region , zobacz Use simplified compute node communication (Używanie uproszczonej komunikacji węzła obliczeniowego).

Pule w konfiguracji usług Cloud Services

Ostrzeżenie

Pule konfiguracji usług Cloud Services są przestarzałe. Zamiast tego użyj pul konfiguracji maszyny wirtualnej.

Wymagania:

  • Obsługiwane sieci wirtualne: tylko klasyczne sieci wirtualne.

  • Identyfikator podsieci: podczas określania podsieci przy użyciu interfejsów API usługi Batch użyj identyfikatora zasobu podsieci. Identyfikator podsieci ma postać:

    /subscriptions/{subscription}/resourceGroups/{group}/providers/Microsoft.ClassicNetwork/virtualNetworks/{network}/subnets/{subnet}

  • Uprawnienia: jednostka Microsoft Azure Batch usługi musi mieć rolę platformy Classic Virtual Machine Contributor Azure dla określonej sieci wirtualnej.

Sieciowe grupy zabezpieczeń dla pul konfiguracji usług Cloud Services

Podsieć musi zezwalać na komunikację przychodzącą z usługi Batch, aby móc planować zadania w węzłach obliczeniowych i musi zezwalać na komunikację wychodzącą z usługą Azure Storage lub innymi zasobami.

Nie musisz określać sieciowej grupy zabezpieczeń, ponieważ usługa Batch konfiguruje komunikację przychodzącą tylko z adresów IP usługi Batch do węzłów puli. Jednak jeśli określona sieć wirtualna ma skojarzone sieciowe grupy zabezpieczeń i/lub zaporę, skonfiguruj reguły zabezpieczeń ruchu przychodzącego i wychodzącego tak, jak pokazano w poniższych tabelach. Jeśli komunikacja z węzłami obliczeniowymi w określonej podsieci zostanie odrzucona przez sieciową grupę zabezpieczeń, usługa Batch ustawi stan węzłów obliczeniowych na bezużyteczny.

Skonfiguruj ruch przychodzący na port 3389 (Windows), gdy musisz zezwolić na dostęp RDP do węzłów puli. Ta reguła nie jest wymagana, aby węzły puli można było używać.

Reguły zabezpieczeń dla ruchu przychodzącego

Źródłowe adresy IP Porty źródłowe Element docelowy Porty docelowe Protokół Akcja
Wszelki

Mimo że ta reguła skutecznie wymaga zezwolenia na wszystkie, usługa Batch stosuje regułę listy ACL na poziomie każdego węzła, który filtruje wszystkie adresy IP usługi innej niż Batch.
* Dowolne 10100, 20100, 30100 TCP Zezwalaj
Opcjonalne, aby umożliwić dostęp RDP do węzłów obliczeniowych. * Dowolne 3389 TCP Zezwalaj

Reguły zabezpieczeń dla ruchu wychodzącego

Źródło Porty źródłowe Element docelowy Porty docelowe Protokół Akcja
Dowolne * Dowolne 443 Dowolne Zezwalaj

Tworzenie puli z siecią wirtualną w witrynie Azure Portal

Po utworzeniu sieci wirtualnej i przypisaniu do niej podsieci można utworzyć pulę usługi Batch za pomocą tej sieci wirtualnej. Wykonaj następujące kroki, aby utworzyć pulę w witrynie Azure Portal:

  1. Wyszukaj i wybierz pozycję Konta usługi Batch na pasku wyszukiwania w górnej części witryny Azure Portal. Wybierz konto usługi Batch. To konto musi znajdować się w tej samej subskrypcji i regionie co grupa zasobów zawierająca sieć wirtualną, której zamierzasz użyć.

  2. Wybierz pozycję Pule w obszarze nawigacji po lewej stronie.

  3. W oknie Pule wybierz pozycję Dodaj.

    Screenshot of the Pools page in a Batch account that highlights the Pools option in the left side navigation and add button on the Pools page.

  4. Na stronie Dodawanie puli wybierz opcje i wprowadź informacje dotyczące puli. Aby uzyskać więcej informacji na temat tworzenia pul dla konta usługi Batch, zobacz Tworzenie puli węzłów obliczeniowych. Rozmiar węzła, węzły dedykowane elementu docelowego i węzły typu spot/niski priorytet i wszelkie żądane ustawienia opcjonalne.

  5. W obszarze Sieć wirtualna wybierz sieć wirtualną i podsieć, której chcesz użyć.

  6. Wybierz przycisk OK , aby utworzyć pulę.

Ważne

Jeśli spróbujesz usunąć podsieć, która jest używana przez pulę, zostanie wyświetlony komunikat o błędzie. Przed usunięciem tej podsieci należy usunąć wszystkie pule korzystające z podsieci.

Trasy zdefiniowane przez użytkownika na potrzeby wymuszonego tunelowania

W organizacji mogą istnieć wymagania dotyczące przekierowywania (wymuszania) ruchu internetowego z podsieci z powrotem do lokalizacji lokalnej na potrzeby inspekcji i rejestrowania. Ponadto być może włączono wymuszone tunelowanie dla podsieci w sieci wirtualnej.

Aby upewnić się, że węzły w puli działają w sieci wirtualnej z włączonym wymuszonym tunelowaniem, należy dodać następujące trasy zdefiniowane przez użytkownika (UDR) dla tej podsieci.

W przypadku pul trybu komunikacji klasycznej:

  • Usługa Batch musi komunikować się z węzłami na potrzeby planowania zadań. Aby włączyć tę komunikację, dodaj trasę zdefiniowaną przez użytkownika odpowiadającą usłudze BatchNodeManagement.tag usługi regionw regionie, w którym istnieje twoje konto usługi Batch. Ustaw typ Następnego przeskoku na Internet.

  • Upewnij się, że sieć lokalna nie blokuje wychodzącego ruchu TCP do usługi Azure Storage na docelowym porcie 443 (w szczególności adresy URL formularza *.table.core.windows.net, *.queue.core.windows.neti *.blob.core.windows.net).

W przypadku uproszczonych pul trybu komunikacji bez używania prywatnego punktu końcowego zarządzania węzłami:

  • Upewnij się, że sieć lokalna nie blokuje wychodzącego ruchu TCP/UDP do usługi Azure Batch BatchNodeManagement.tag usługi regionu na docelowym porcie 443. Obecnie jest używany tylko protokół TCP, ale protokół UDP może być wymagany do zapewnienia zgodności w przyszłości.

Dla wszystkich pul:

  • Jeśli używasz instalacji plików wirtualnych, zapoznaj się z wymaganiami sieciowymi i upewnij się, że żaden wymagany ruch nie jest blokowany.

Ostrzeżenie

Adresy IP usługi Batch mogą się zmieniać w czasie. Aby zapobiec awariom spowodowanym zmianami adresów IP usługi Batch, nie należy bezpośrednio określać adresów IP. Zamiast tego należy użyć elementu BatchNodeManagement.tag usługi regionu.

Następne kroki