Udostępnij za pośrednictwem


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:

  1. Aprowizowanie typu węzła z włączoną przyspieszoną siecią
  2. 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)

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