Sieć
Podczas tworzenia klastrów usługi Azure Service Fabric i zarządzania nimi zapewniasz łączność sieciową dla węzłów i aplikacji. Zasoby sieciowe obejmują zakresy adresów IP, sieci wirtualne, moduły równoważenia obciążenia i sieciowe grupy zabezpieczeń. W tym artykule poznasz najlepsze rozwiązania dotyczące tych zasobów.
Przejrzyj wzorce sieciowe usługi Azure Service Fabric, aby dowiedzieć się, jak tworzyć klastry korzystające z następujących funkcji: Istniejąca sieć wirtualna lub podsieć, statyczny publiczny adres IP, moduł równoważenia obciążenia tylko wewnętrzny lub wewnętrzny i zewnętrzny moduł równoważenia obciążenia.
Sieć infrastruktury
Maksymalizuj wydajność maszyny wirtualnej za pomocą przyspieszonej sieci, deklarując właściwość enableAcceleratedNetworking w szablonie usługi Resource Manager. Poniższy fragment kodu jest elementem networkInterfaceConfigurations zestawu skalowania maszyn wirtualnych, który umożliwia przyspieszoną sieć:
"networkInterfaceConfigurations": [
{
"name": "[concat(variables('nicName'), '-0')]",
"properties": {
"enableAcceleratedNetworking": true,
"ipConfigurations": [
{
<snip>
}
],
"primary": true
}
}
]
Klaster usługi Service Fabric można aprowizować w systemie Linux z przyspieszoną siecią i systemem Windows z przyspieszoną siecią.
Przyspieszona sieć jest obsługiwana w przypadku jednostek SKU serii maszyn wirtualnych platformy Azure: D/DSv2, D/DSv3, E/ESv3, F/FS, FSv2 i Ms/Mms. Przyspieszona sieć została pomyślnie przetestowana przy użyciu jednostki SKU Standard_DS8_v3 w dniu 23.01.23.2019 dla klastra systemu Windows usługi Service Fabric oraz przy użyciu Standard_DS12_v2 w dniu 29.01.2019 dla klastra systemu Linux usługi Service Fabric. Należy pamiętać, że przyspieszona sieć wymaga co najmniej 4 procesorów wirtualnych.
Aby włączyć przyspieszoną sieć w istniejącym klastrze usługi Service Fabric, należy najpierw skalować klaster usługi Service Fabric w poziomie, dodając zestaw skalowania maszyn wirtualnych, aby wykonać następujące kroki:
- Aprowizowanie typu węzła z włączoną przyspieszoną siecią
- Migrowanie usług i ich stanu do aprowizowanego typu NodeType z włączoną przyspieszoną siecią
Skalowanie infrastruktury w poziomie jest wymagane do włączenia przyspieszonej sieci w istniejącym klastrze, ponieważ włączenie przyspieszonej sieci spowodowałoby przestój, ponieważ wymaga to zatrzymania i cofnięcia przydziału wszystkich maszyn wirtualnych w zestawie dostępności przed włączeniem przyspieszonej sieci na dowolnej istniejącej karcie sieciowej.
Cluster Networking (Sieć klastrów)
Klastry usługi Service Fabric można wdrożyć w istniejącej sieci wirtualnej, wykonując kroki opisane w temacie Wzorce sieci usługi Service Fabric.
Sieciowe grupy zabezpieczeń (NSG) są zalecane w przypadku typów węzłów w celu ograniczenia ruchu przychodzącego i wychodzącego do klastra. Upewnij się, że wymagane porty są otwarte w sieciowej grupie zabezpieczeń.
Typ węzła podstawowego, który zawiera usługi systemowe usługi Service Fabric, nie musi być uwidaczniony za pośrednictwem zewnętrznego modułu równoważenia obciążenia i może być uwidoczniony przez wewnętrzny moduł równoważenia obciążenia
Użyj statycznego publicznego adresu IP dla klastra.
Reguły zabezpieczeń sieci
Opisane w następnej kolejności reguły są zalecanym minimum dla typowej konfiguracji. Uwzględniamy również reguły obowiązkowe dla klastra operacyjnego, jeśli opcjonalne reguły nie są wymagane. Umożliwia to pełne zablokowanie zabezpieczeń z pojęciami dotyczącymi komunikacji równorzędnej sieci i serwera przesiadkowego, takich jak usługa Azure Bastion. Nie można otworzyć obowiązkowych portów lub zatwierdzenia adresu IP/adresu URL uniemożliwi prawidłowe działanie klastra i może nie być obsługiwane.
Przychodzący
Priorytet | Nazwa | Port | Protokół | Element źródłowy | Element docelowy | Akcja | Obowiązkowy |
---|---|---|---|---|---|---|---|
3900 | Azure Portal | 19080 | TCP | ServiceFabric | Dowolne | Zezwalaj | Tak |
3910 | Adres API klienta | 19000 | TCP | Internet | Dowolne | Zezwalaj | Nie. |
3920 | SFX + Interfejs API klienta | 19080 | TCP | Internet | Dowolne | Zezwalaj | Nie. |
3930 | Klaster | 1025-1027 | TCP | VirtualNetwork | Dowolne | Zezwalaj | Tak |
3940 | Efemeryczny | 49152-65534 | TCP | VirtualNetwork | Dowolne | Zezwalaj | Tak |
3950 | Aplikacja | 20000-30000 | TCP | VirtualNetwork | Dowolne | Zezwalaj | Tak |
3960 | RDP | 3389 | TCP | Internet | Dowolne | Zablokuj | Nie. |
3970 | SSH | 22 | TCP | Internet | Dowolne | Zablokuj | Nie. |
3980 | Niestandardowy punkt końcowy | 443 | TCP | Internet | Dowolne | Zablokuj | Nie. |
Więcej informacji o regułach zabezpieczeń dla ruchu przychodzącego:
Użycie witryny Azure Portal. Ten port jest używany przez dostawcę zasobów usługi Service Fabric do wykonywania zapytań o informacje o klastrze w celu wyświetlenia w portalu zarządzania Azure. Jeśli ten port nie jest dostępny z poziomu dostawcy zasobów usługi Service Fabric, w witrynie Azure Portal zostanie wyświetlony komunikat taki jak "Nie znaleziono węzłów" lub "UpgradeServiceNotReachable" w witrynie Azure Portal, a lista węzłów i aplikacji jest pusta. Oznacza to, że jeśli chcesz mieć widoczność klastra w portalu zarządzania Platformy Azure, moduł równoważenia obciążenia musi uwidocznić publiczny adres IP, a sieciowa grupa zabezpieczeń musi zezwalać na ruch przychodzący 19080. Ten port jest zalecany w przypadku rozszerzonych operacji zarządzania od dostawcy zasobów usługi Service Fabric w celu zagwarantowania większej niezawodności.
Interfejs API klienta. Punkt końcowy połączenia klienta dla interfejsów API używanych przez program PowerShell.
SFX + Interfejs API klienta. Ten port jest używany przez program Service Fabric Explorer do przeglądania klastra i zarządzania nim. Jest on używany przez najbardziej typowe interfejsy API, takie jak REST/PowerShell (Microsoft.ServiceFabric.PowerShell.Http)/CLI/.NET w ten sam sposób.
Klaster. Służy do komunikacji między węzłami.
Efemeryczny. Usługa Service Fabric używa części tych portów jako portów aplikacji, a pozostałe są dostępne dla systemu operacyjnego. Mapuje również ten zakres na istniejący zakres obecny w systemie operacyjnym, więc dla wszystkich celów można użyć zakresów podanych w przykładzie tutaj. Upewnij się, że różnica między portami początkowymi i końcowymi wynosi co najmniej 255. Jeśli ta różnica jest zbyt niska, może wystąpić konflikt, ponieważ ten zakres jest udostępniany systemowi operacyjnej. Aby wyświetlić skonfigurowany zakres portów dynamicznych, uruchom polecenie netsh int ipv4 show dynamicport tcp. Te porty nie są potrzebne w przypadku klastrów systemu Linux.
Aplikacja. Zakres portów aplikacji powinien być wystarczająco duży, aby uwzględnić wymaganie punktu końcowego aplikacji. Ten zakres powinien być wyłączny z zakresu portów dynamicznych na maszynie, czyli zakres efemerycznyPorts ustawiony w konfiguracji. Usługa Service Fabric używa tych portów zawsze, gdy wymagane są nowe porty i dba o otwarcie zapory dla tych portów w węzłach.
RDP. Opcjonalnie, jeśli protokół RDP jest wymagany z Internetu lub virtualNetwork na potrzeby scenariuszy serwera przesiadkowego.
Protokół SSH. Opcjonalnie, jeśli protokół SSH jest wymagany z Internetu lub usługi VirtualNetwork na potrzeby scenariuszy serwera przesiadkowego.
Niestandardowy punkt końcowy. Przykładem aplikacji jest włączenie internetowego punktu końcowego.
Uwaga
W przypadku większości reguł z Internetem jako źródłem należy rozważyć ograniczenie do znanej sieci, najlepiej zdefiniowane przez blok CIDR.
Wychodzący
Priorytet | Nazwa | Port | Protokół | Element źródłowy | Element docelowy | Akcja | Obowiązkowy |
---|---|---|---|---|---|---|---|
4010 | Dostawca zasobów | 443 | TCP | Dowolne | ServiceFabric | Zezwalaj | Tak |
4020 | Pobieranie plików binarnych | 443 | TCP | Dowolne | AzureFrontDoor.FirstParty | Zezwalaj | Tak |
Więcej informacji o regułach zabezpieczeń dla ruchu wychodzącego:
Dostawca zasobów. Połączenie między usługą UpgradeService i dostawcą zasobów usługi Service Fabric w celu odbierania operacji zarządzania, takich jak wdrożenia usługi ARM lub obowiązkowe operacje, takie jak wybór węzła inicjowania lub uaktualnianie typu węzła podstawowego.
Pobierz pliki binarne. Usługa uaktualniania używa adresu download.microsoft.com w celu pobrania plików binarnych. Ta relacja jest wymagana do instalacji, ponownego obrazu i uaktualnienia środowiska uruchomieniowego. W scenariuszu modułu równoważenia obciążenia "tylko wewnętrznego" należy dodać dodatkowy zewnętrzny moduł równoważenia obciążenia z regułą zezwalającą na ruch wychodzący dla portu 443. Opcjonalnie ten port można zablokować po pomyślnej konfiguracji, ale w takim przypadku pakiet uaktualnienia musi być dystrybuowany do węzłów lub port musi zostać otwarty przez krótki czas, a następnie konieczne jest ręczne uaktualnienie.
Użyj usługi Azure Firewall z dziennikiem przepływu sieciowej grupy zabezpieczeń i analizą ruchu, aby śledzić problemy z łącznością. Dobrym przykładem jest usługa Service Fabric szablonu usługi ARM z sieciową grupą zabezpieczeń .
Uwaga
Domyślne reguły zabezpieczeń sieci nie powinny być zastępowane, ponieważ zapewniają komunikację między węzłami. Sieciowa grupa zabezpieczeń — jak to działa. Innym przykładem jest konieczność sprawdzenia listy odwołania certyfikatów łączności wychodzącej na porcie 80.
Typowe scenariusze wymagające dodatkowych reguł
Wszystkie dodatkowe scenariusze można uwzględnić w tagach usługi platformy Azure.
Azure DevOps
Klasyczne zadania programu PowerShell w usłudze Azure DevOps (tag usługi: AzureCloud) wymagają dostępu interfejsu API klienta do klastra. Przykłady to wdrożenia aplikacji lub zadania operacyjne. Nie dotyczy to tylko podejścia do szablonów usługi ARM, w tym zasobów aplikacji usługi ARM.
Priorytet | Nazwa | Port | Protokół | Element źródłowy | Element docelowy | Akcja | Kierunek |
---|---|---|---|---|---|---|---|
3915 | Azure DevOps | 19000 | TCP | AzureCloud | Dowolne | Zezwalaj | Przychodzący |
Aktualizowanie systemu Windows
Najlepsze rozwiązanie dotyczące stosowania poprawek systemu operacyjnego Windows polega na zastąpieniu dysku systemu operacyjnego przez automatyczne uaktualnienia obrazów systemu operacyjnego, nie jest wymagana żadna dodatkowa reguła. Aplikacja Patch Orchestration zarządza uaktualnieniami maszyn wirtualnych, w których aktualizacje systemu Windows stosują poprawki systemu operacyjnego. Wymaga to dostępu do Centrum pobierania (tag usługi: AzureUpdateDelivery), aby pobrać pliki binarne aktualizacji.
Priorytet | Nazwa | Port | Protokół | Element źródłowy | Element docelowy | Akcja | Kierunek |
---|---|---|---|---|---|---|---|
4015 | Aktualizacje systemu Windows | 443 | TCP | Dowolne | AzureUpdateDelivery | Zezwalaj | Wychodzący |
API Management
Integracja usługi Azure API Management (tag usługi: ApiManagement) wymaga dostępu interfejsu API klienta do wykonywania zapytań o informacje o punkcie końcowym z klastra.
Priorytet | Nazwa | Port | Protokół | Element źródłowy | Element docelowy | Akcja | Kierunek |
---|---|---|---|---|---|---|---|
3920 | API Management | 19080 | TCP | ApiManagement | Dowolne | Zezwalaj | Przychodzący |
Sieć aplikacji
Aby uruchomić obciążenia kontenerów systemu Windows, użyj trybu otwierania sieci, aby ułatwić komunikację między usługami.
Użyj zwrotnego serwera proxy, takiego jak Traefik lub zwrotny serwer proxy usługi Service Fabric, aby uwidocznić typowe porty aplikacji, takie jak 80 lub 443.
W przypadku kontenerów systemu Windows hostowanych na maszynach, które nie mogą ściągać warstw bazowych z magazynu w chmurze platformy Azure, przesłaniają zachowanie warstwy obcej przy użyciu flagi --allow-nondistributable-artifacts w demonie platformy Docker.
Następne kroki
- Tworzenie klastra na maszynach wirtualnych lub komputerach z systemem Windows Server: tworzenie klastra usługi Service Fabric dla systemu Windows Server
- Tworzenie klastra na maszynach wirtualnych lub komputerach z systemem Linux: tworzenie klastra systemu Linux
- Uzyskaj informacje o opcjach pomocy technicznej usługi Service Fabric