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:
- Bereitstellen eines NodeType mit aktiviertem beschleunigten Netzwerkbetrieb
- 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
- Erstellen eines Clusters auf virtuellen Computern oder Computern mit Windows Server: Erstellen eines Service Fabric-Clusters für Windows Server
- Erstellen eines Clusters auf virtuellen Computern oder Computern mit Linux: Erstellen eines Linux-Clusters
- Informieren Sie sich über Service Fabric-Supportoptionen.