Bereitstellen eines Service Fabric-Linux-Clusters in einem virtuellen Azure-NetzwerkDeploy a Linux Service Fabric cluster into an Azure virtual network

In diesem Artikel erfahren Sie, wie Sie mithilfe der Azure CLI und einer Vorlage einen Service Fabric-Linux-Cluster in einem virtuellen Azure-Netzwerk (VNET) bereitstellen.In this article you learn how to deploy a Linux Service Fabric cluster into an Azure virtual network (VNET) using Azure CLI and a template. Wenn Sie fertig sind, verfügen Sie über einen Cluster, der in der Cloud ausgeführt wird und für den Sie Anwendungen bereitstellen können.When you're finished, you have a cluster running in the cloud that you can deploy applications to. Informationen zum Erstellen eines Windows-Clusters mithilfe von PowerShell finden Sie unter Bereitstellen eines sicheren Service Fabric-Windows-Clusters in einem virtuellen Azure-Netzwerk.To create a Windows cluster using PowerShell, see Create a secure Windows cluster on Azure.

VoraussetzungenPrerequisites

VorbereitungenBefore you begin:

Mit den folgenden Schritten wird ein Service Fabric-Cluster mit sieben Knoten erstellt.The following procedures create a seven-node Service Fabric cluster. Zum Berechnen der Kosten, die durch das Ausführen eines Service Fabric-Clusters in Azure anfallen, verwenden Sie den Azure-Preisrechner.To calculate cost incurred by running a Service Fabric cluster in Azure use the Azure Pricing Calculator.

Herunterladen und Erkunden der VorlageDownload and explore the template

Laden Sie die folgenden Resource Manager-Vorlagendateien herunter:Download the following Resource Manager template files:

Diese Vorlage stellt einen sicheren Cluster mit sieben virtuellen Computern und drei Knotentypen in einem virtuellen Netzwerk bereit.This template deploys a secure cluster of seven virtual machines and three node types into a virtual network. Weitere Beispielvorlagen finden Sie auf GitHub.Other sample templates can be found on GitHub. Die Datei AzureDeploy.json stellt verschiedene Ressourcen bereit, einschließlich der folgenden.The AzureDeploy.json deploys a number resources, including the following.

Service Fabric-ClusterService Fabric cluster

In der Ressource Microsoft.ServiceFabric/clusters wird ein Linux-Cluster mit den folgenden Eigenschaften bereitgestellt:In the Microsoft.ServiceFabric/clusters resource, a Linux cluster is deployed with the following characteristics:

  • Drei Knotentypenthree node types
  • Fünf Knoten für den primären Knotentyp (in den Vorlagenparametern konfigurierbar) sowie jeweils ein Knoten für die anderen Knotentypenfive nodes in the primary node type (configurable in the template parameters), one node in each of the other node types
  • Betriebssystem: Ubuntu 16.04 LTS (in den Vorlagenparametern konfigurierbar)OS: Ubuntu 16.04 LTS (configurable in the template parameters)
  • Geschütztes Zertifikat (in den Vorlagenparametern konfigurierbar)certificate secured (configurable in the template parameters)
  • DNS-Dienst aktiviertDNS service is enabled
  • Dauerhaftigkeitsstufe „Bronze“ (in den Vorlagenparametern konfigurierbar)Durability level of Bronze (configurable in the template parameters)
  • Zuverlässigkeitsstufe „Silber“ (in den Vorlagenparametern konfigurierbar)Reliability level of Silver (configurable in the template parameters)
  • Clientverbindungsendpunkt: 19000 (in den Vorlagenparametern konfigurierbar)client connection endpoint: 19000 (configurable in the template parameters)
  • HTTP-Gatewayendpunkt: 19080 (in den Vorlagenparametern konfigurierbar)HTTP gateway endpoint: 19080 (configurable in the template parameters)

Azure Load BalancerAzure load balancer

In der Ressource Microsoft.Network/loadBalancers wird ein Lastenausgleich konfiguriert, und es werden Tests und Regeln für die folgenden Ports eingerichtet:In the Microsoft.Network/loadBalancers resource, a load balancer is configured and probes and rules setup for the following ports:

  • Clientverbindungsendpunkt: 19000client connection endpoint: 19000
  • HTTP-Gatewayendpunkt: 19080HTTP gateway endpoint: 19080
  • Anwendungsport: 80application port: 80
  • Anwendungsport: 443application port: 443

Virtuelles Netzwerk und SubnetzVirtual network and subnet

Die Namen des virtuellen Netzwerks und Subnetzes werden in den Vorlagenparametern deklariert.The names of the virtual network and subnet are declared in the template parameters. Adressräume des virtuellen Netzwerks und des Subnetzes werden auch in den Vorlagenparametern deklariert und in der Ressource Microsoft.Network/virtualNetworks konfiguriert:Address spaces of the virtual network and subnet are also declared in the template parameters and configured in the Microsoft.Network/virtualNetworks resource:

  • Adressraum des virtuellen Netzwerks: 10.0.0.0/16virtual network address space: 10.0.0.0/16
  • Service Fabric-Subnetzadressraum: 10.0.2.0/24Service Fabric subnet address space: 10.0.2.0/24

Wenn keine anderen Anwendungsports benötigt werden, müssen Sie die Ressource „Microsoft.Network/loadBalancers“ anpassen, um eingehenden Datenverkehr zuzulassen.If any other application ports are needed, then you will need to adjust the Microsoft.Network/loadBalancers resource to allow the traffic in.

Festlegen von VorlagenparameternSet template parameters

In der Parameterdatei AzureDeploy.Parameters werden viele Werte deklariert, die zum Bereitstellen des Clusters und der zugehörigen Ressourcen verwendet werden.The AzureDeploy.Parameters parameters file declares many values used to deploy the cluster and associated resources. Hier sind einige Parameter angegeben, die Sie für Ihre Bereitstellung ggf. ändern müssen:Some of the parameters that you might need to modify for your deployment:

ParameterParameter BeispielwertExample value NotizenNotes
adminUserNameadminUserName vmadminvmadmin Administratorbenutzername für die Cluster-VMsAdmin username for the cluster VMs.
adminPasswordadminPassword Password#1234Password#1234 Administratorkennwort für die Cluster-VMsAdmin password for the cluster VMs.
clusterNameclusterName mysfcluster123mysfcluster123 Name des ClustersName of the cluster.
locationlocation southcentralussouthcentralus Standort des ClustersLocation of the cluster.
certificateThumbprintcertificateThumbprint

Der Wert sollte leer sein, wenn ein selbstsigniertes Zertifikat erstellt oder eine Zertifikatsdatei bereitgestellt wird.Value should be empty if creating a self-signed certificate or providing a certificate file.

Um ein vorhandenes, zuvor in einen Schlüsseltresor hochgeladenes Zertifikat zu verwenden, geben Sie den Wert für den SHA-1-Zertifikatfingerabdruck ein.To use an existing certificate previously uploaded to a key vault, fill in the certificate SHA1 thumbprint value. Beispiel: „6190390162C988701DB5676EB81083EA608DCCF3“.For example, "6190390162C988701DB5676EB81083EA608DCCF3".

certificateUrlValuecertificateUrlValue

Der Wert sollte leer sein, wenn ein selbstsigniertes Zertifikat erstellt oder eine Zertifikatsdatei bereitgestellt wird.Value should be empty if creating a self-signed certificate or providing a certificate file.

Geben Sie die Zertifikat-URL ein, wenn Sie ein vorhandenes Zertifikat verwenden möchten, das zuvor in einen Schlüsseltresor hochgeladen wurde.To use an existing certificate previously uploaded to a key vault, fill in the certificate URL. Beispiel: https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346.For example, "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346".

sourceVaultValuesourceVaultValue

Der Wert sollte leer sein, wenn ein selbstsigniertes Zertifikat erstellt oder eine Zertifikatsdatei bereitgestellt wird.Value should be empty if creating a self-signed certificate or providing a certificate file.

Geben Sie den Wert für den Quelltresor ein, wenn Sie ein vorhandenes Zertifikat verwenden möchten, das zuvor in einen Schlüsseltresor hochgeladen wurde.To use an existing certificate previously uploaded to a key vault, fill in the source vault value. Beispiel: „/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT“.For example, "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT".

Bereitstellen des virtuellen Netzwerks und des ClustersDeploy the virtual network and cluster

Richten Sie als Nächstes die Netzwerktopologie ein, und stellen Sie den Service Fabric-Cluster bereit.Next, set up the network topology and deploy the Service Fabric cluster. Die Resource Manager-Vorlage AzureDeploy.json erstellt ein virtuelles Netzwerk (VNET) und ein Subnetz für Service Fabric.The AzureDeploy.json Resource Manager template creates a virtual network (VNET) and a subnet for Service Fabric. Außerdem wird mit der Vorlage ein Cluster mit aktivierter Zertifikatsicherheit bereitgestellt.The template also deploys a cluster with certificate security enabled. Verwenden Sie für Produktionscluster ein Zertifikat einer Zertifizierungsstelle als Clusterzertifikat.For production clusters, use a certificate from a certificate authority (CA) as the cluster certificate. Es kann ein selbstsigniertes Zertifikat zum Schützen von Testclustern verwendet werden.A self-signed certificate can be used to secure test clusters.

Mit der Vorlage in diesem Artikel wird ein Cluster bereitgestellt, der das Clusterzertifikat anhand des Zertifikatfingerabdrucks identifiziert.The template in this article deploy a cluster that uses the certificate thumbprint to identify the cluster certificate. Zwei Zertifikate können nicht den gleichen Fingerabdruck haben, was die Zertifikatverwaltung erschwert.No two certificates can have the same thumbprint, which makes certificate management more difficult. Durch den Wechsel von „Zertifikatfingerabdruck“ zu „Allgemeiner Name“ bei einem bereitgestellten Cluster wird die Zertifikatverwaltung vereinfacht.Switching a deployed cluster from using certificate thumbprints to using certificate common names makes certificate management much simpler. Unter Ändern des Clusters in Zertifikatverwaltung mit allgemeinen Namen erfahren Sie, wie Sie den Cluster aktualisieren, um allgemeine Zertifikatnamen für die Zertifikatverwaltung zu verwenden.To learn how to update the cluster to use certificate common names for certificate management, read change cluster to certificate common name management.

Erstellen eines Clusters mit einem vorhandenen ZertifikatCreate a cluster using an existing certificate

Im folgenden Skript werden der Befehl az sf cluster create und eine Vorlage verwendet, um einen neuen Cluster bereitzustellen, der durch ein vorhandenes Zertifikat geschützt ist.The following script uses the az sf cluster create command and template to deploy a new cluster secured with an existing certificate. Außerdem wird mit dem Befehl ein neuer Schlüsseltresor in Azure erstellt und Ihr Zertifikat hochgeladen.The command also creates a new key vault in Azure and uploads your certificate.

ResourceGroupName="sflinuxclustergroup"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates\MyCertificate.pem"

# sign in to your Azure account and select your subscription
az login
az account set --subscription <guid>

# Create a new resource group for your deployment and give it a name and a location.
az group create --name $ResourceGroupName --location $Location

# Create the Service Fabric cluster.
az sf cluster create --resource-group $ResourceGroupName --location $Location \
   --certificate-password $Password --certificate-file $CertPath \
   --vault-name $VaultName --vault-resource-group $ResourceGroupName  \
   --template-file AzureDeploy.json --parameter-file AzureDeploy.Parameters.json

Erstellen eines Clusters mit einem neuen selbstsignierten ZertifikatCreate a cluster using a new, self-signed certificate

Das folgende Skript verwendet den Befehl az sf cluster create und eine Vorlage, um einen neuen Cluster in Azure bereitzustellen.The following script uses the az sf cluster create command and a template to deploy a new cluster in Azure. Der Befehl erstellt auch einen neuen Schlüsseltresor in Azure, fügt diesem ein neues selbstsigniertes Zertifikat hinzu und lädt das Zertifikat an einen lokalen Speicherort herunter.The command also creates a new key vault in Azure, adds a new self-signed certificate to the key vault, and downloads the certificate file locally.

ResourceGroupName="sflinuxclustergroup"
ClusterName="sflinuxcluster"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates"

az sf cluster create --resource-group $ResourceGroupName --location $Location --cluster-name $ClusterName --template-file C:\temp\cluster\AzureDeploy.json --parameter-file C:\temp\cluster\AzureDeploy.Parameters.json --certificate-password $Password --certificate-output-folder $CertPath --certificate-subject-name $ClusterName.$Location.cloudapp.azure.com --vault-name $VaultName --vault-resource-group $ResourceGroupName

Herstellen einer Verbindung mit dem sicheren ClusterConnect to the secure cluster

Stellen Sie mit dem Service Fabric-CLI-Befehl sfctl cluster select unter Verwendung Ihres Schlüssels eine Verbindung mit dem Cluster her.Connect to the cluster using the Service Fabric CLI command sfctl cluster select with your key. Verwenden Sie für ein selbstsigniertes Zertifikat nur die Option --no-verify.Note, only use the --no-verify option for a self-signed certificate.

sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify

Überprüfen Sie mithilfe des Befehls sfctl cluster health, ob die Verbindung hergestellt wurde und der Cluster fehlerfrei ist.Check that you are connected and the cluster is healthy using the sfctl cluster health command.

sfctl cluster health

Bereinigen von RessourcenClean up resources

Wenn Sie nicht direkt mit dem nächsten Artikel fortfahren, sollten Sie den Cluster löschen, um anfallende Gebühren zu vermeiden.If you're not immediately moving on to the next article, you might want to delete the cluster to avoid incurring charges.

Nächste SchritteNext steps

Erfahren Sie, wie Sie einen Cluster skalieren.Learn how to scale a Cluster.

Mit der Vorlage in diesem Artikel wird ein Cluster bereitgestellt, der das Clusterzertifikat anhand des Zertifikatfingerabdrucks identifiziert.The template in this article deploy a cluster that uses the certificate thumbprint to identify the cluster certificate. Zwei Zertifikate können nicht den gleichen Fingerabdruck haben, was die Zertifikatverwaltung erschwert.No two certificates can have the same thumbprint, which makes certificate management more difficult. Durch den Wechsel von „Zertifikatfingerabdruck“ zu „Allgemeiner Name“ bei einem bereitgestellten Cluster wird die Zertifikatverwaltung vereinfacht.Switching a deployed cluster from using certificate thumbprints to using certificate common names makes certificate management much simpler. Unter Ändern des Clusters in Zertifikatverwaltung mit allgemeinen Namen erfahren Sie, wie Sie den Cluster aktualisieren, um allgemeine Zertifikatnamen für die Zertifikatverwaltung zu verwenden.To learn how to update the cluster to use certificate common names for certificate management, read change cluster to certificate common name management.