Netzwerk

Wenn Sie Azure Service Fabric-Cluster erstellen und verwalten, stellen Sie die Netzwerkverbindung für Ihre Knoten und Anwendungen bereit. Zu den Netzwerkressourcen gehören IP-Adressbereiche, virtuelle Netzwerke, Lastenausgleich und Netzwerksicherheitsgruppen. In diesem Artikel lernen Sie bewährte Methoden für diese Ressourcen kennen.

Lesen Sie Azure Service Fabric-Netzwerkmuster, um zu erfahren, wie Sie Cluster erstellen, die die folgenden Features verwenden: Vorhandenes virtuelles Netzwerk oder Subnetz, statische öffentliche IP-Adresse, reiner interner Lastausgleich oder interner und externer Lastausgleich.

Infrastrukturnetzwerke

Maximieren Sie die Leistung Ihres virtuellen Computers durch beschleunigten Netzwerkbetrieb, indem Sie die enableAcceleratedNetworking-Eigenschaft in Ihrer Resource Manager-Vorlage deklarieren. Der folgende Codeausschnitt stammt aus NetworkInterfaceConfigurations einer VM-Skalierungsgruppe, die beschleunigten Netzwerkbetrieb ermöglicht:

"networkInterfaceConfigurations": [
  {
    "name": "[concat(variables('nicName'), '-0')]",
    "properties": {
      "enableAcceleratedNetworking": true,
      "ipConfigurations": [
        {
        <snip>
        }
      ],
      "primary": true
    }
  }
]

Der Service Fabric Cluster kann unter Linux mit beschleunigtem Netzwerkbetrieb und unter Windows mit beschleunigtem Netzwerkbetrieb bereitgestellt werden.

Der beschleunigte Netzwerkbetrieb wird für SKUs der Azure Virtual Machine-Serie unterstützt: D/DSv2, D/DSv3, E/ESv3, F/FS, FSv2 und Ms/Mms. Der beschleunigte Netzwerkbetrieb wurde am 23.01.2019 erfolgreich mit der SKU Standard_DS8_v3 für einen Service Fabric Windows-Cluster und am 29.01.2019 mit Standard_DS12_v2 für einen Service Fabric Linux-Cluster getestet. Beachten Sie, dass der beschleunigte Netzwerkbetrieb mindestens 4 vCPUs erfordert.

Um beschleunigten Netzwerkbetrieb für einen vorhandenen Service Fabric-Cluster zu aktivieren, müssen Sie zunächst einen Service Fabric-Cluster erweitern, indem Sie eine VM-Skalierungsgruppe hinzufügen, um folgende Schritte auszuführen:

  1. Bereitstellen eines NodeType mit aktiviertem beschleunigten Netzwerkbetrieb
  2. Migrieren Ihrer Dienste und deren Status zum bereitgestellten NodeType mit aktiviertem beschleunigten Netzwerkbetrieb

Die Erweiterung der Infrastruktur ist erforderlich, um beschleunigten Netzwerkbetrieb für einen vorhandenen Cluster zu ermöglichen, da die Aktivierung von beschleunigtem Netzwerkbetrieb zu Ausfallzeiten führen würde, da alle virtuellen Computer in einer Verfügbarkeitsgruppe beendet werden müssen und ihre Zuordnung aufgehoben werden muss, bevor beschleunigter Netzwerkbetrieb für eine vorhandene NIC aktiviert werden kann.

Clusternetzwerke

  • Service Fabric-Cluster können in einem vorhandenen virtuellen Netzwerk bereitgestellt werden, indem die unter Service Fabric-Netzwerkmuster beschriebenen Schritte ausgeführt werden.

  • Netzwerksicherheitsgruppen (NSGs) werden für Knotentypen empfohlen, um den eingehenden und ausgehenden Datenverkehr auf ihren Cluster zu beschränken. Stellen Sie sicher, dass die erforderlichen Ports in der NSG geöffnet sind.

  • Der primäre Knotentyp, der die Service Fabric-Systemdienste enthält, muss nicht über den externen Lastausgleich bereitgestellt werden. Er kann über einen internen Lastausgleich bereitgestellt werden.

  • Verwenden Sie eine statische öffentliche IP-Adresse für Ihren Cluster.

Netzwerksicherheitsregeln

Bei den nachstehend beschriebenen Regeln handelt es sich um die empfohlenen Mindestregeln für eine typische Konfiguration. Außerdem ist angegeben, welche Regeln für einen funktionierenden Cluster obligatorisch sind, wenn keine optionalen Regeln erwünscht sind. Auch eine vollständige Sicherheitssperre mit Netzwerkpeering und Jumpbox-Konzepten wie Azure Bastion ist möglich. Wenn die obligatorischen Ports nicht geöffnet sind oder die IP-Adresse/URL nicht genehmigt wurde, kann der Cluster nicht ordnungsgemäß betrieben werden und wird möglicherweise nicht unterstützt.

Eingehend

Priority Name Port Protokoll Quelle Ziel Aktion Obligatorisch.
3900 Azure-Portal 19080 TCP ServiceFabric Any Allow Ja
3910 Client-API 19000 TCP Internet Any Allow Nein
3920 SFX und Client-API 19080 TCP Internet Any Allow Nein
3930 Cluster 1025-1027 TCP VirtualNetwork Any Allow Ja
3940 Kurzlebig 49152-65534 TCP VirtualNetwork Any Allow Ja
3950 Application 20000-30000 TCP VirtualNetwork Any Allow Ja
3960 RDP 3389 TCP Internet Any Verweigern Nein
3970 SSH 22 TCP Internet Any Verweigern Nein
3980 Benutzerdefinierter Endpunkt 443 TCP Internet Any Verweigern Nein

Weitere Informationen zu den Eingangssicherheitsregeln:

  • Azure-Portal. Dieser Port wird vom Service Fabric-Ressourcenanbieter verwendet, um Informationen zu Ihrem Cluster abzufragen und im Azure-Verwaltungsportal anzuzeigen. Wenn der Service Fabric-Ressourcenanbieter nicht auf diesen Port zugreifen kann, wird im Azure-Portal eine Meldung wie „Knoten nicht gefunden“ oder „UpgradeServiceNotReachable“ angezeigt, und die Liste der Knoten und Anwendungen wird leer angezeigt. Wenn Sie Ihren Cluster im Azure-Portal anzeigen möchten, muss Ihr Lastenausgleich somit eine öffentliche IP-Adresse bereitstellen, und die NSG muss über Port 19080 eingehenden Datenverkehr zulassen. Dieser Port wird für erweiterte Verwaltungsvorgänge des Service Fabric-Ressourcenanbieters empfohlen, um eine höhere Zuverlässigkeit zu gewährleisten.

  • Client-API. Der Clientverbindungsendpunkt für von PowerShell verwendete APIs.

  • SFX und Client-API. Dieser Port wird von Service Fabric Explorer zum Durchsuchen und Verwalten Ihres Clusters verwendet. Darüber hinaus wird er von den gängigsten APIs wie REST, PowerShell (Microsoft.ServiceFabric.PowerShell.Http), CLI und .NET auf die gleiche Weise verwendet.

  • Cluster. Wird für die Kommunikation zwischen Knoten verwendet.

  • Kurzlebig. Service Fabric nutzt einen Teil dieser Ports als Anwendungsports, und die restlichen Ports sind für das Betriebssystem verfügbar. Außerdem wird dieser Bereich dem vorhandenen Bereich des Betriebssystems zugeordnet, und Sie können die in den Beispielen hier angegebenen Bereiche für alle Zwecke verwenden. Stellen Sie sicher, dass der Unterschied zwischen den Start- und Endports mindestens 255 beträgt. Wenn dieser Unterschied zu gering ist, kommt es womöglich zu Konflikten, da dieser Bereich für das Betriebssystem freigegeben ist. Um den konfigurierten dynamischen Portbereich anzuzeigen, führen Sie netsh int ipv4 show dynamicport tcp aus. Diese Ports sind für Linux-Cluster nicht erforderlich.

  • Anwendung. Der Portbereich der Anwendung sollte ausreichend sein, um die Endpunktanforderung Ihrer Anwendungen abzudecken. Dieser Bereich sollte vom dynamischen Portbereich auf dem Computer (dem „ephemeralPorts“-Bereich in der Konfiguration) getrennt sein. Service Fabric greift auf diese Ports zurück, wenn neue Ports benötigt werden, und öffnet die Firewall für diese Ports auf den Knoten.

  • RDP. Optional, wenn RDP aus dem Internet oder dem virtuellen Netzwerk für Jumpboxszenarien erforderlich ist.

  • SSH. Optional, wenn SSH aus dem Internet oder dem virtuellen Netzwerk für Jumpboxszenarien erforderlich ist.

  • Benutzerdefinierter Endpunkt. Ein Beispiel für Ihre Anwendung zum Aktivieren eines aus dem Internet zugänglichen Endpunkts.

Hinweis

Bei den meisten Regeln mit Internet als Quelle empfiehlt sich eine Beschränkung auf Ihr bekanntes Netzwerk – idealerweise definiert mittels CIDR-Block.

Ausgehend

Priority Name Port Protokoll Quelle Ziel Aktion Obligatorisch.
4010 Ressourcenanbieter 443 TCP Any ServiceFabric Allow Ja
4020 Herunterladen von Binärdateien 443 TCP Any AzureFrontDoor.FirstParty Allow Ja

Weitere Informationen zu den Ausgangssicherheitsregeln:

  • Ressourcenanbieter. Verbindung zwischen Upgradedienst (UpgradeService) und Service Fabric-Ressourcenanbieter, um Verwaltungsvorgänge wie ARM-Bereitstellungen oder obligatorische Vorgänge wie Seedknotenauswahl oder Upgrade des primären Knotentyps zu empfangen.

  • Herunterladen von Binärdateien. Der Upgradedienst verwendet die Adresse „download.microsoft.com“, um die Binärdateien abzurufen. Diese Beziehung ist für die Einrichtung, für das Reimaging und für Runtime-Upgrades erforderlich. Im Szenario mit rein internem Lastenausgleich muss ein zusätzlicher externer Lastenausgleich mit einer Regel hinzugefügt werden, die ausgehenden Datenverkehr für den Port 443 zulässt. Optional kann dieser Port nach einer erfolgreichen Einrichtung blockiert werden. In diesem Fall muss das Upgradepaket jedoch an die Knoten verteilt werden, oder der Port muss für einen kurzen Zeitraum geöffnet werden. Anschließend ist ein manuelles Upgrade erforderlich.

Verwenden Sie Azure Firewall mit NSG-Datenflussprotokoll und Traffic Analytics, um Konnektivitätsprobleme nachzuverfolgen. Die ARM-Vorlage Service Fabric mit NSG ist ein gutes Beispiel für den Einstieg.

Hinweis

Die Standard-Netzwerksicherheitsregeln sollten nicht überschrieben werden, da sie die Kommunikation zwischen den Knoten sicherstellen. Filtern von Netzwerkdatenverkehr mit Netzwerksicherheitsgruppen. Ein weiteres Beispiel: Für die Überprüfung der Zertifikatssperrliste sind ausgehende Verbindungen am Port 80 erforderlich.

Allgemeine Szenarien, die zusätzliche Regeln benötigen

Alle zusätzlichen Szenarien können mit Azure-Diensttags abgedeckt werden.

Azure DevOps

Für die klassischen PowerShell-Aufgaben in Azure DevOps (Diensttag: AzureCloud) ist ein Client-API-Zugriff auf den Cluster erforderlich, z. B. für Anwendungsbereitstellungen oder operative Aufgaben. Dies gilt nicht für den Ansatz, bei dem ausschließlich ARM-Vorlagen verwendet werden, einschließlich ARM-Anwendungsressourcen.

Priority Name Port Protokoll Quelle Ziel Aktion Direction
3915 Azure DevOps 19000 TCP AzureCloud Any Allow Eingehend

Aktualisieren von Windows

Die bewährte Methode zum Patchen des Windows-Betriebssystems besteht darin, den Betriebssystemdatenträger durch automatische Betriebssystemimage-Upgrades zu ersetzen, wobei keine zusätzliche Regel erforderlich ist. Die Patch Orchestration-Anwendung verwaltet VM-interne Upgrades, bei denen über Windows-Updates Betriebssystempatches angewendet werden. Sie benötigt Zugriff auf das Download Center (Diensttag: AzureUpdateDelivery), um die Binärdateien für Updates herunterzuladen.

Priority Name Port Protokoll Quelle Ziel Aktion Direction
4015 Windows-Updates 443 TCP Any AzureUpdateDelivery Allow Ausgehend

API Management

Für die Azure API Management-Integration (Diensttag: ApiManagement) wird Client-API-Zugriff benötigt, um Endpunktinformationen aus dem Cluster abzufragen.

Priority Name Port Protokoll Quelle Ziel Aktion Direction
3920 API Management 19080 TCP ApiManagement Any Allow Eingehend

Anwendungsnetzwerke

  • Verwenden Sie zum Ausführen von Windows-Containerworkloads den offenen Netzwerkmodus, um die Kommunikation zwischen Diensten zu erleichtern.

  • Verwenden Sie einen Reverseproxy wie Traefik oder den Service Fabric-Reverseproxy, um allgemeine Anwendungsports wie 80 oder 443 bereitzustellen.

  • Setzen Sie bei Windows-Containern, die auf Air-Gap-Computern gehostet werden, die keine Basisebenen aus dem Azure-Cloudspeicher pullen können, das Verhalten der fremden Ebene außer Kraft. Verwenden Sie dazu das Flag --allow-nondistributable-artifacts im Docker-Daemon.

Nächste Schritte