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 itargetLowPriorityNodes
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.
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
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 |
Składowanie.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).
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:
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ć.
Wybierz pozycję Pule w obszarze nawigacji po lewej stronie.
W oknie Pule wybierz pozycję Dodaj.
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.
W obszarze Sieć wirtualna wybierz sieć wirtualną i podsieć, której chcesz użyć.
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 region w 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.net
i*.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.