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

In diesem Dokument wird beschrieben, wie Sie einen lokalen Linux-Service Fabric-Cluster 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 unter Windows ausgeführt. Um aber plattformübergreifende Prototypen zu ermöglichen, haben wir einen Docker-Clustercontainer von Linux-Service Fabric zur Verfügung gestellt, der über Docker für Windows bereitgestellt werden kann.

Bevor Sie beginnen, benötigen Sie Folgendes:

  • Mindestens 4 GB RAM
  • Neueste Version von Docker für Windows
  • Docker muss im Linux-Containermodus ausgeführt werden.

Tipp

Führen Sie die Schritte in der Docker-Dokumentation aus, um Docker auf Ihrem Windows-Computer zu installieren. Überprüfen Sie anschließend die Installation.

Erstellen eines lokalen Containers und Einrichten von Service Fabric

Führen Sie die folgenden Schritte aus, um einen lokalen Docker-Container einzurichten und einen Service Fabric-Cluster darin auszuführen:

  1. Aktualisieren Sie wie folgt die Konfiguration des Docker-Daemons auf dem Host, und starten Sie den Docker-Daemon neu:

    {
      "ipv6": true,
      "fixed-cidr-v6": "2001:db8:1::/64"
    }
    

    Empfohlene Vorgehensweise zum Aktualisieren:

    • Docker-Symbol > Einstellungen > Docker-Engine
    • Hinzufügen der oben aufgeführten neuen Felder
    • Anwenden und neu starten: Neustarten des Docker-Daemons, damit die Änderungen wirksam werden.
  2. Starten des Clusters über PowerShell.
    Ubuntu 20.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u20
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    Tipp

    Standardmäßig wird dann das Image mit der aktuellen Version von Service Fabric per Pullvorgang bereitgestellt. Informationen zu bestimmten Revisionen finden Sie auf der Seite Service Fabric Onebox von Docker Hub.

  3. Optional: Erstellen Sie das erweiterte Service Fabric-Image.

    Erstellen Sie zum Erstellen Ihres angepassten Images eine Datei namens Dockerfile in einem neuen Verzeichnis:

    Hinweis

    Sie können das Image oben mit einer Dockerfile-Datei anpassen, um in Ihrem Container weitere Programme oder Abhängigkeiten hinzuzufügen. Wenn Sie beispielsweise RUN apt-get install nodejs -y hinzufügen, können Anwendungen vom Typ nodejs als ausführbare Gastdateien unterstützt werden.

    FROM mcr.microsoft.com/service-fabric/onebox:u18
    RUN apt-get install nodejs -y
    EXPOSE 19080 19000 80 443
    WORKDIR /home/ClusterDeployer
    CMD ["./ClusterDeployer.sh"]
    

    Tipp

    Standardmäßig wird dann das Image mit der aktuellen Version von Service Fabric per Pullvorgang bereitgestellt. Bestimmte Revisionen finden Sie auf der Seite Docker Hub.

    Öffnen Sie ein Terminal, wechseln Sie mit cd zum Verzeichnis mit Ihrer Datei vom Typ Dockerfile, und führen Sie anschließend Folgendes aus, um Ihr wiederverwendbares Images auf der Grundlage der Datei vom Typ Dockerfile zu erstellen:

    docker build -t mysfcluster .
    

    Hinweis

    Dieser Vorgang dauert etwas, muss jedoch nur einmal ausgeführt werden.

    Nun können Sie bei Bedarf schnell eine lokale Kopie von Service Fabric starten, indem Sie Folgendes ausführen:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mysfcluster
    

    Tipp

    Geben Sie einen Namen für Ihre Containerinstanz an, um die Lesbarkeit zu verbessern.

    Wenn Ihre Anwendung an bestimmten Ports lauscht, müssen diese mit zusätzlichen Tags vom Typ -p angegeben werden. Beispiel: Wenn Ihre Anwendung an Port 8080 lauscht, fügen Sie das folgende -p-Tag hinzu:

    docker run -itd -p 19000:19000 -p 19080:19080 -p 8080:8080 --name sfonebox mcr.microsoft.com/service-fabric/onebox:u18

  4. Der Start des Clusters dauert einen Moment. Sie können mithilfe des folgenden Befehls Protokolle anzeigen oder zum Dashboard wechseln, um sich über die Integrität der Cluster zu informieren (http://localhost:19080):

    docker logs sftestcluster
    
  5. Nachdem der Cluster wie in Schritt 4 beschrieben erfolgreich bereitgestellt wurde, können Sie auf Ihrem Windows-Computer zu http://localhost:19080 navigieren, um das Service Fabric Explorer-Dashboard zu suchen. Jetzt können Sie mit Tools von Ihrem Windows-Entwicklungscomputer aus eine Verbindung mit diesem Cluster herstellen und Anwendungen für Linux-Service Fabric-Cluster bereitstellen.

    Hinweis

    Das Eclipse-Plug-In wird unter Windows aktuell nicht unterstützt.

  6. Wenn Sie fertig sind, beenden und bereinigen Sie den Container mithilfe des folgenden Befehls:

    docker rm -f sftestcluster
    

Bekannte Einschränkungen

Für den lokalen Cluster in einem Container auf einem Mac sind folgende Einschränkungen bekannt:

  • Der DNS-Dienst wird nicht ausgeführt und wird zurzeit im Container nicht unterstützt. Issue #132
  • Das Ausführen von containerbasierten Apps erfordert die Ausführung von SF auf einem Linux-Host. Geschachtelte Containeranwendungen werden derzeit nicht unterstützt.

Nächste Schritte