Einrichten eines Linux-Service Fabric-Clusters unter WSL2 auf Ihrem Windows-Entwicklungscomputer

In diesem Dokument wird beschrieben, wie Sie einen lokalen Linux-Service Fabric-Cluster unter WSL2 auf einem Windows-Entwicklungscomputer einrichten. Das Einrichten eines lokalen Linux-Clusters ist für das schnelle Testen von Anwendungen, die für Linux-Cluster konzipiert sind, aber auf einem Windows-Computer entwickelt werden.

Voraussetzungen

Linux-basierte Service Fabric-Cluster werden nicht direkt auf Windows ausgeführt. Microsoft ermöglicht plattformübergreifendes Prototyping, indem Service Fabric-Cluster mithilfe von WSL2 (Windows-Subsystem für Linux) für Windows auf einer Linux-Distribution bereitgestellt werden.

Bevor Sie beginnen, benötigen Sie Folgendes:

  • In Windows eingerichtetes WSL2, wobei WSL 2 als Standardversion festgelegt sein muss
  • Einrichten der Ubuntu 18.04-Linux-Distribution aus dem Microsoft Store beim Einrichten von WSL2

Tipp

Führen Sie die Schritte in der WSL-Dokumentation aus, um WSL2 auf Ihrem Windows-Computer zu installieren. Stellen Sie nach der Installation sicher, dass Ubuntu 18.04 installiert und als Standarddistribution eingerichtet ist.

Einrichten Service Fabric SDK innerhalb der Linux-Distribution

Service Fabric kann in der WSL2-Linux-Distribution nicht so ausgeführt werden wie im Standard-Linux-Betriebssystem. Das liegt daran, dass systemd als PID1 nicht innerhalb der VM ausgeführt wird, aber eine Voraussetzung für das Funktionieren des SF-SDK ist. Um systemd als PID1 zu verwenden, wird als Workaround systemd-genie benutzt. Weitere Details zu systemd-genie finden Sie unter Einrichten von systemd-genie, wo die Installation per Skript sowie die manuelle Installation sowohl von systemd-genie als auch des Service-Fabric-SDK beschrieben wird.

Skriptinstallation

Ein Skript hilft Ihnen beim Installieren der Service Fabric-Runtime und des allgemeinen Service Fabric SDK zusammen mit der sfctl-CLI. Für die Ausführung des Skripts wird vorausgesetzt, dass Sie den Lizenzen für die gesamte zu installierende Software zustimmen. Alternativ dazu können Sie die Schritte zur manuellen Installation im nächsten Abschnitt ausführen. Dort sind zugehörige Lizenzen sowie die installierten Komponenten dargestellt.

Nach der erfolgreichen Ausführung des Skripts können Sie direkt zu Einrichten eines lokalen Clusters springen.

sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh | sudo bash

Manuelle Installation

Die Schritte zum manuellen Installieren der Service Fabric-Runtime und des allgemeinen SDK finden Sie im restlichen Teil dieser Anleitung.

  1. Öffnen Sie ein Terminal.

  2. Anmelden bei der WSL2-Linux-Distribution

  3. Richten Sie systemd-genie ein, wie in Einrichten von systemd-genie beschrieben (wenn systemd-genie bereits eingerichtet ist, können Sie zum nächsten Schritt springen).

  4. Wechseln Sie mit „genie -s“ in den Genie-Namespace.

  5. Innerhalb des Genie-Namespace kann das SF-SDK auch wie unter „Skriptinstallation“ oder „Manuelle Installation“ in Einrichten eines lokalen Linux-Clusters installiert werden.

  6. Erteilen von sudo-Rechten für den aktuellen Benutzer durch einen <USERNAME\> ALL = (ALL) NOPASSWD:ALL-Eintrag in /etc/sudoers

Einrichten eines lokalen Clusters

Für die Bedienung von Fenstern des Host-Systems aus wird Service Fabric in WSL2-VM empfohlen.

  1. Installieren Sie Service Fabric SDK (Version 6.0 oder höher) auf dem Windows-Host.

  2. In Windows können Cluster mithilfe des ServiceFabricLocalClusterManager-Tools verwaltet werden, das im Rahmen des SF-SDK bereitgestellt wird.

  3. Der lokale Linux-Cluster kann nur bedient werden, wenn erstens WSL2 VM ausgeführt wird, zweitens die Pakete Systemd-Genie, Servicefabricruntime und Servicefabricsdkcommon sind in der VM ordnungsgemäß installiert und drittens Systemd-genie ausgeführt wird. Sie können über dieses Tool den lokalen Linux-Cluster einrichten oder zu ihm wechseln.

  4. Eine weitere Möglichkeit zum Einrichten des Linux-Clusters besteht darin, ihn mithilfe von im SF-SDK enthaltenen Clustersetupskripts bereitzustellen.

  5. Navigieren Sie in einem Webbrowser zu Service Fabric Explorer http://localhost:19080. Beim Starten des Clusters wird das Dashboard von Service Fabric Explorer angezeigt. Die Clustereinrichtung kann einige Minuten dauern. Sollte sich die URL in Ihrem Browser nicht öffnen lassen oder der Cluster in Service Fabric Explorer nicht angezeigt werden, versuchen Sie es nach einigen Minuten noch einmal. Sie können auch den Cluster in ServiceFabricExplorer sehen, das im SF-SDK bereitgestellt wird.

  6. Sobald der Cluster aktiv ist, können Sie eine Verbindung mit dem lokalen Cluster in PowerShell und Visual Studio herstellen.

Manuelle Installation mit benutzerdefinierten ServiceFabric- und ServieFabricSdkCommon-Debian-Paket

Befolgen Sie für die manuelle Installation der Service Fabric aus benutzerdefinierten oder heruntergeladenen Debian-Paketen den Rest dieses Leitfadens.

  1. Öffnen Sie ein Terminal.

  2. Melden Sie sich bei der WSL2-Linux-Distribution an.

  3. Klonen Sie die Setup-Datei.

sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh > SetupServiceFabric.sh
  1. Machen Sie die Datei zu einer ausführbaren Datei.
sudo chmod +x SetupServiceFabric.sh
  1. Führen Sie das Setup-Skript mit dem Pfad für lokale Debian-Pakete aus. Stellen Sie sicher, dass die bereitgestellten Pfade gültig sind. Unten ist ein Beispiel aufgeführt:
sudo ./SetupServiceFabric.sh --servicefabricruntime=/mnt/c/Users/testuser/Downloads/servicefabric.deb --servicefabricsdk=/mnt/c/Users/testuser/Downloads/servicefabric_sdkcommon.deb

Bekannte Einschränkungen

Für den lokalen Cluster in einem Container auf einer Linux-Distribution sind folgende Einschränkungen bekannt:

  • Derzeit wird nur die Ubuntu-18.04-Distribution unterstützt.
  • Für eine nahtlose Erfahrung mit lokalem Cluster-Manager und Visual Studio empfiehlt es sich, Cluster mithilfe von PowerShell-Skripts oder LocalClusterManager auf dem Windows-Host zu verwalten.

Häufig gestellte Fragen

  1. Welche Linux-Distributionen werden für die Einrichtung des lokalen SF-Clusters unterstützt?
    Derzeit wird nur Ubuntu-18.04 für lokale Linux-Cluster unterstützt.

  2. Kann mit WSL2 ein Windows- und Linux-SF-Cluster gleichzeitig ausgeführt werden?
    Nein, gleichzeitig kann nur ein lokaler Cluster entweder auf dem Host oder der Gast-VM ausgeführt werden.

  3. Wie stellt man einen lokalen Linux-Cluster mit einem Knoten bereit?
    Lokale Linux-Cluster mit einem oder fünf Knoten können sind über die Menüoptionen von Local Cluster Manager wählbar. Während der Bereitstellung über das Setupskript wird standardmäßig ein Cluster mit fünf Knoten bereitgestellt. Für einen Knoten sollte „CreateOneNodeCluster“ übergeben werden.

  4. Wie stellt man in PowerShell und Visual Studio eine Verbindung mit dem lokalen Linux-Cluster her?
    Wenn der lokale Linux-Cluster ausgeführt wird, sollte das Cmdlet connect-servicefabriccluster automatisch eine Verbindung mit diesem Cluster herstellen. Visual Studio erkennt diesen lokalen Cluster auf ähnliche Weise automatisch. Der Cluster kann auch verbunden werden, indem der Clusterendpunkt in PowerShell oder Visual Studio angegeben wird.

  5. Wo befinden sich die SF Cluster-Daten des lokalen Linux-Clusters?
    Wenn Sie die Ubuntu-18.04-Distribution verwenden, befinden sich SF-Daten unter \wsl$\Ubuntu-18.04\home\sfuser\sfdevcluster des Windows-Hosts.

Nächste Schritte