Schnellstart: Bereitstellen von Linux-Containern in Service FabricQuickstart: Deploy Linux containers to Service Fabric

Azure Service Fabric ist eine Plattform für verteilte Systeme zum Bereitstellen und Verwalten von skalierbaren und zuverlässigen Microservices und Containern.Azure Service Fabric is a distributed systems platform for deploying and managing scalable and reliable microservices and containers.

In diesem Schnellstart wird veranschaulicht, wie Sie Linux-Container in einem Service Fabric-Cluster in Azure bereitstellen.This quickstart shows how to deploy Linux containers to a Service Fabric cluster on Azure. Nach Abschluss des Vorgangs verfügen Sie über eine Abstimmungsanwendung mit einem Python-Web-Front-End und einem Redis-Back-End, die in einem Service Fabric-Cluster ausgeführt werden.Once complete, you have a voting application consisting of a Python web front end and a Redis back end running in a Service Fabric cluster. Außerdem erfahren Sie, wie Sie ein Failover für eine Anwendung ausführen und eine Anwendung in Ihrem Cluster skalieren.You also learn how to fail over an application and how to scale an application in your cluster.

Webseite der Voting-App

VoraussetzungenPrerequisites

So führen Sie diesen Schnellstart durch:To complete this quickstart:

  1. Falls Sie über kein Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen.Create a free Azure account before you begin if you don't have a subscription.

  2. Installieren Sie die Azure CLI.Install the Azure CLI

  3. Installieren Sie das Service Fabric SDK und die CLI.Install the Service Fabric SDK and CLI

  4. GitInstall Git

Abrufen des AnwendungspaketsGet the application package

Zum Bereitstellen von Containern in Service Fabric benötigen Sie eine Gruppe von Manifestdateien (die Anwendungsdefinition), in denen die einzelnen Container und die Anwendung beschrieben ist.To deploy containers to Service Fabric, you need a set of manifest files (the application definition), which describe the individual containers and the application.

Klonen Sie in einer Konsole mithilfe von „git“ eine Kopie der Anwendungsdefinition, und navigieren Sie anschließend in Ihrem Klon zum Verzeichnis Voting.In a console, use git to clone a copy of the application definition; then change directories to the Voting directory in your clone.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

Erstellen von Service Fabric-ClusternCreate a Service Fabric cluster

Für die Bereitstellung der Anwendung in Azure benötigen Sie einen Service Fabric-Cluster, in dem die Anwendung ausgeführt wird.To deploy the application to Azure, you need a Service Fabric cluster to run the application. Die folgenden Befehle erstellen einen Cluster mit fünf Knoten in Azure.The following commands create a five-node cluster in Azure. Diese Befehle erstellen auch ein selbstsigniertes Zertifikat, fügen es einem Schlüsseltresor hinzu und laden das Zertifikat lokal herunter.The commands also create a self-signed certificate, adds it to a key vault and downloads the certificate locally. Das neue Zertifikat dient zum Sichern des Clusters, wenn er bereitgestellt wird, sowie zum Authentifizieren von Clients.The new certificate is used to secure the cluster when it deploys and is used to authenticate clients.

#!/bin/bash

# Variables
ResourceGroupName="containertestcluster" 
ClusterName="containertestcluster" 
Location="eastus" 
Password="q6D7nN%6ck@6" 
Subject="containertestcluster.eastus.cloudapp.azure.com" 
VaultName="containertestvault" 
VmPassword="Mypa$$word!321"
VmUserName="sfadminuser"

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certficate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1604 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

Hinweis

Der Web-Front-End-Dienst ist für das Lauschen auf eingehenden Datenverkehr über Port 80 konfiguriert.The web front end service is configured to listen on port 80 for incoming traffic. Port 80 ist auf Ihren virtuellen Clustercomputern und dem Azure-Lastenausgleich standardmäßig geöffnet.By default, port 80 is open on your cluster VMs and the Azure load balancer.

Konfigurieren Ihrer UmgebungConfigure your environment

Service Fabric bietet mehrere Tools, mit denen Sie einen Cluster und die dazugehörigen Anwendungen verwalten können:Service Fabric provides several tools that you can use to manage a cluster and its applications:

  • Service Fabric Explorer: Ein browserbasiertes Tool.Service Fabric Explorer, a browser-based tool.
  • Service Fabric-Befehlszeilenschnittstelle (CLI): Basiert auf der Azure CLI.Service Fabric Command Line Interface (CLI), which runs on top of Azure CLI.
  • PowerShell-BefehlePowerShell commands.

In dieser Schnellstartanleitung verwenden Sie die Service Fabric-Befehlszeilenschnittstelle sowie Service Fabric Explorer (ein webbasiertes Tool).In this quickstart, you use the Service Fabric CLI and Service Fabric Explorer (a web based tool). Damit Sie Service Fabric Explorer verwenden können, müssen Sie die PFX-Zertifikatdatei in den Browser importieren.To use Service Fabric Explorer, you need to import the certificate PFX file into the browser. Für die PFX-Datei ist standardmäßig kein Kennwort festgelegt.By default, the PFX file has no password.

Der Standardbrowser in Ubuntu 16.04 ist Mozilla Firefox.Mozilla Firefox is the default browser in Ubuntu 16.04. Klicken Sie zum Importieren des Zertifikats rechts oben in Firefox auf die Menüschaltfläche und anschließend auf Einstellungen.To import the certificate into Firefox, click the menu button in the upper right corner of your browser, then click Options. Suchen Sie über das Suchfeld auf der Seite Einstellungen nach „Zertifikate“.On the Preferences page, use the search box to search for "certificates". Klicken Sie auf Zertifikate anzeigen, klicken Sie auf die Registerkarte Ihre Zertifikate, klicken Sie auf Importieren, und befolgen Sie die Anweisungen zum Importieren des Zertifikats.Click View Certificates, select the Your Certificates tab, click Import and follow the prompts to import the certificate.

Installieren des Zertifikats in Firefox

Bereitstellen der Service Fabric-AnwendungDeploy the Service Fabric application

  1. Stellen Sie mithilfe der CLI eine Verbindung mit dem Service Fabric-Cluster in Azure her.Connect to the Service Fabric cluster in Azure using the CLI. Der Endpunkt ist der Verwaltungsendpunkt für Ihren Cluster.The endpoint is the management endpoint for your cluster. Die PEM-Datei haben Sie im vorherigen Abschnitt erstellt.You created the PEM file in the previous section.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. Verwenden Sie das Installationsskript, um die Definition der Voting-Anwendung in den Cluster zu kopieren, den Anwendungstyp zu registrieren und eine Instanz der Anwendung zu erstellen.Use the install script to copy the Voting application definition to the cluster, register the application type, and create an instance of the application. Die PEM-Zertifikatdatei muss sich im gleichen Verzeichnis wie die Datei install.sh befinden.The PEM certificate file should be located in the same directory as the install.sh file.

    ./install.sh
    
  3. Navigieren Sie in einem Webbrowser zum Service Fabric Explorer-Endpunkt für Ihren Cluster.Open a web browser and navigate to the Service Fabric Explorer endpoint for your cluster. Der Endpunkt hat das folgende Format: https://<URL Ihres Azure Service Fabric-Clusters>:19080/Explorer. Beispiel: https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.The endpoint has the following format: https://<my-azure-service-fabric-cluster-url>:19080/Explorer; for example, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  4. Erweitern Sie den Knoten Anwendungen, um zu prüfen, ob nun ein Eintrag für den Voting-Anwendungstyp und die von Ihnen erstellte Instanz vorhanden ist.Expand the Applications node to see that there is now an entry for the Voting application type and the instance you created.

    Service Fabric Explorer

  5. Navigieren Sie in einem Webbrowser zur URL des Clusters (beispielsweise http://containertestcluster.eastus.cloudapp.azure.com:80), um eine Verbindung mit dem ausgeführten Container herzustellen.To connect to the running container, open a web browser and navigate to the URL of your cluster; for example, http://containertestcluster.eastus.cloudapp.azure.com:80. Die Abstimmungsanwendung sollte im Browser angezeigt werden.You should see the Voting application in the browser.

    Webseite der Voting-App

Hinweis

Service Fabric-Anwendungen können auch mit Docker Compose bereitgestellt werden.You can also deploy Service Fabric applications with Docker compose. Verwenden Sie beispielsweise den folgenden Befehl, um die Anwendung mithilfe von Docker Compose im Cluster bereitzustellen und zu installieren:For example, the following command could be used to deploy and install the application on the cluster using Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

Ausführen eines Failovers für einen Container in einem ClusterFail over a container in a cluster

Bei einem Ausfall sorgt Service Fabric dafür, dass Ihre Containerinstanzen automatisch auf andere Knoten im Cluster verschoben werden.Service Fabric makes sure that your container instances automatically move to other nodes in the cluster if a failure occurs. Sie können die Container eines Knotens auch manuell entfernen und diese geregelt auf andere Knoten im Cluster verschieben.You can also manually drain a node for containers and move then gracefully to other nodes in the cluster. Service Fabric bietet mehrere Skalierungsoptionen für Dienste.Service Fabric provides several ways to scale your services. In den folgenden Schritten wird Service Fabric Explorer verwendet.In the following steps, you use Service Fabric Explorer.

Führen Sie die folgenden Schritte aus, um für den Front-End-Container ein Failover auszuführen:To fail over the front-end container, do the following steps:

  1. Öffnen Sie Service Fabric Explorer in Ihrem Cluster. Beispiel: https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.Open Service Fabric Explorer in your cluster; for example, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. Klicken Sie in der Strukturansicht auf den Knoten fabric:/Voting/azurevotefront, und erweitern Sie den (durch eine GUID dargestellten) Partitionsknoten.Click the fabric:/Voting/azurevotefront node in the tree view and expand the partition node (represented by a GUID). Beachten Sie den Knotennamen in der Strukturansicht. Hier werden die Knoten angezeigt, auf denen der Container derzeit ausgeführt wird (beispielsweise _nodetype_1).Notice the node name in the treeview, which shows you the nodes that the container is currently running on; for example, _nodetype_1.

  3. Erweitern Sie in der Strukturansicht den Knoten Knoten.Expand the Nodes node in the tree view. Klicken Sie neben dem Knoten, auf dem der Container ausgeführt wird, auf die Auslassungspunkte.Click the ellipsis (...) next to the node that is running the container.

  4. Wählen Sie Neu starten aus, um den Knoten neu zu starten, und bestätigen Sie die Neustartaktion.Choose Restart to restart that node and confirm the restart action. Der Neustart bewirkt, dass für den Container ein Failover auf einen anderen Knoten im Cluster ausgeführt wird.The restart causes the container to fail over to another node in the cluster.

    Knotenansicht in Service Fabric Explorer

Skalieren von Anwendungen und Diensten in einem ClusterScale applications and services in a cluster

Service Fabric-Dienste können für einen Cluster auf einfache Weise skaliert werden, um die Last für die Dienste zu bewältigen.Service Fabric services can easily be scaled across a cluster to accommodate for the load on the services. Sie skalieren einen Dienst, indem Sie die Anzahl von Instanzen ändern, die im Cluster ausgeführt werden.You scale a service by changing the number of instances running in the cluster.

Führen Sie die folgenden Schritte aus, um den Web-Front-End-Dienst zu skalieren:To scale the web front-end service, do the following steps:

  1. Öffnen Sie Service Fabric Explorer in Ihrem Cluster. Beispiel: https://containertestcluster.eastus.cloudapp.azure.com:19080.Open Service Fabric Explorer in your cluster; for example,https://containertestcluster.eastus.cloudapp.azure.com:19080.

  2. Klicken Sie in der Strukturansicht neben dem Knoten fabric:/Voting/azurevotefront auf die drei Auslassungspunkte und anschließend auf Scale Service (Dienst skalieren).Click the ellipsis (three dots) next to the fabric:/Voting/azurevotefront node in the treeview and choose Scale Service.

    Service Fabric Explorer: Starten der Dienstskalierung

    Sie können jetzt angeben, dass die Anzahl von Instanzen des Web-Front-End-Diensts skaliert werden soll.You can now choose to scale the number of instances of the web front-end service.

  3. Ändern Sie die Anzahl in 2, und klicken Sie auf Scale Service (Dienst skalieren).Change the number to 2 and click Scale Service.

  4. Klicken Sie in der Strukturansicht auf den Knoten fabric:/Voting/azurevotefront, und erweitern Sie den (durch eine GUID dargestellten) Partitionsknoten.Click the fabric:/Voting/azurevotefront node in the tree-view and expand the partition node (represented by a GUID).

    Service Fabric Explorer: Dienstskalierung abgeschlossen

    Sie sehen jetzt, dass der Dienst über zwei Instanzen verfügt.You can now see that the service has two instances. In der Strukturansicht wird angezeigt, auf welchen Knoten die Instanzen ausgeführt werden.In the tree view, you can see which nodes the instances run on.

Mit dieser einfachen Verwaltungsaufgabe haben Sie die Ressourcen verdoppelt, die dem Front-End-Dienst zur Bewältigung der Benutzerauslastung zur Verfügung stehen.Through this simple management task, you've doubled the resources available for the front-end service to process user load. Es ist wichtig zu verstehen, dass Sie nicht mehrere Instanzen eines Diensts benötigen, damit er zuverlässig ausgeführt wird.It's important to understand that you don't need multiple instances of a service for it to run reliably. Sollte ein Dienst ausfallen, stellt Service Fabric sicher, dass im Cluster eine neue Dienstinstanz ausgeführt wird.If a service fails, Service Fabric makes sure that a new service instance runs in the cluster.

Bereinigen von RessourcenClean up resources

Verwenden Sie das Deinstallationsskript (uninstall.sh) aus der Vorlage, um die Anwendungsinstanz aus dem Cluster zu löschen und die Registrierung des Anwendungstyps aufzuheben.Use the uninstall script (uninstall.sh) provided in the template to delete the application instance from the cluster and unregister the application type. Es dauert etwas, bis die Instanz durch dieses Skript bereinigt wurde. Aus diesem Grund sollte das Installationsskript nicht unmittelbar nach diesem Skript ausgeführt werden.This script takes some time to clean up the instance, so you should not run the install script immediately after this script. Sie können mithilfe von Service Fabric Explorer ermitteln, ob die Instanz entfernt und die Registrierung des Anwendungstyps aufgehoben wurde.You can use Service Fabric Explorer to determine when the instance has been removed and the application type unregistered.

./uninstall.sh

Die einfachste Möglichkeit zum Löschen des Clusters und aller darin genutzten Ressourcen besteht darin, die Ressourcengruppe zu löschen.The simplest way to delete the cluster and all the resources it consumes is to delete the resource group.

Melden Sie sich bei Azure an, und wählen Sie die Abonnement-ID aus, mit der Sie den Cluster entfernen möchten.Sign in to Azure and select the subscription ID with which you want to remove the cluster. Melden Sie sich beim Azure-Portal an, um Ihre Abonnement-ID zu ermitteln.You can find your subscription ID by logging in to the Azure portal. Löschen Sie die Ressourcengruppe und alle Clusterressourcen mithilfe des Befehls az group delete.Delete the resource group and all the cluster resources using the az group delete command.

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

Nach Abschluss der Clusterverwendung können Sie das Zertifikat aus Ihrem Zertifikatspeicher entfernen.If you are finished working with your cluster, you can remove the certificate from your certificate store. Beispiel:For example:

  • Unter Windows: Verwenden Sie das MMC-Snap-In „Zertifikate“.On Windows: Use the Certificates MMC snap-in. Beim Hinzufügen des Snap-Ins muss Mein Benutzerkonto ausgewählt sein.Be sure to select My user account when adding the snap-in. Navigieren Sie zu Certificates - Current User\Personal\Certificates, und entfernen Sie das Zertifikat.Navigate to Certificates - Current User\Personal\Certificates and remove the certificate.
  • Auf einem Mac: Verwenden Sie die Keychain-App.On Mac: Use the Keychain app.
  • Unter Ubuntu: Führen Sie die Schritte aus, die Sie zum Anzeigen von Zertifikaten verwendet haben, und entfernen Sie das Zertifikat.On Ubuntu: Follow the steps you used to view certificates and remove the certificate.

Nächste SchritteNext steps

In dieser Schnellstartanleitung haben Sie eine Linux-Containeranwendung in einem Service Fabric-Cluster in Azure bereitgestellt, ein Failover für die Anwendung ausgeführt und die Anwendung im Cluster skaliert.In this quickstart, you've deployed a Linux container application to a Service Fabric cluster in Azure, performed fail-over on the application, and scaled the application in the cluster. Weitere Informationen zur Verwendung von Linux-Containern in Service Fabric finden Sie im Tutorial für Linux-Container-Apps.To learn more about working with Linux containers in Service Fabric, continue to the tutorial for Linux container apps.