Erstellen eines Service Fabric-Clusters in Azure mithilfe von Azure Resource Manager

Ein Azure Service Fabric-Cluster ist eine vernetzte Gruppe von virtuellen Computern, auf denen Ihre Microservices bereitgestellt und verwaltet werden. Bei einem Service Fabric-Cluster, der in Azure ausgeführt wird, handelt es sich um eine Azure-Ressource, die mithilfe von Azure Resource Manager bereitgestellt wird. Dieser Artikel beschreibt die Bereitstellung eines sicheren Service Fabric-Clusters in Azure mithilfe von Resource Manager. Sie können dazu eine Standardclustervorlage oder eine benutzerdefinierte Vorlage verwenden. Wenn Sie noch keine benutzerdefinierte Vorlage haben, erfahren Sie hier, wie eine erstellt wird.

Die Art der Sicherheit, die zur Sicherung des Clusters ausgewählt wurde (z. B: Windows Identity, X509 usw.) muss für die erste Erstellung des Clusters angegeben werden und kann danach nicht mehr geändert werden. Lesen Sie vor dem Einrichten eines Clusters den Artikel Szenarien für die Clustersicherheit in Service Fabric. In Azure verwendet Service Fabric das X.509-Zertifikat zum Schützen Ihres Clusters und seiner Endpunkte sowie zum Authentifizieren von Clients und Verschlüsseln von Daten. Microsoft Entra ID wird auch empfohlen, um den Zugriff auf Verwaltungsendpunkte zu schützen. Weitere Informationen finden Sie unter Einrichten von Microsoft Entra ID zum Authentifizieren von Clients.

Wenn Sie einen Produktionscluster für die Ausführung von Produktionsworkloads erstellen, empfehlen wir, davor die Prüfliste für die Produktionsbereitschaft durchzulesen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

In diesem Artikel verwenden Sie die Service Fabric-RM-PowerShell- oder Azure CLI- Module zum Bereitstellen eines Clusters:

Die Referenzdokumentation für die Service Fabric-Module finden Sie hier:

Anmelden bei Azure

Melden Sie sich vor der Ausführung des ersten Befehls in diesem Artikel bei Azure an.

Connect-AzAccount
Set-AzContext -SubscriptionId <subscriptionId>
az login
az account set --subscription $subscriptionId

Erstellen eines neuen Clusters mithilfe eines vom System generierten selbstsignierten Zertifikats

Verwenden Sie die folgenden Befehle zum Erstellen eines Clusters, der mit einem systemgenerierten selbstsignierten Zertifikat gesichert ist. Dieser Befehl richtet ein primäres Clusterzertifikat ein, das für die Clustersicherheit und zum Einrichten von Administratorzugriff verwendet wird, um mithilfe dieses Zertifikats Verwaltungsvorgänge auszuführen. Selbstsignierte Zertifikate empfehlen sich für das Sichern von Testclustern. Produktionscluster sollten mit einem Zertifikat einer Zertifizierungsstelle (ZS) gesichert werden.

Verwenden der im Modul inbegriffenen Standardvorlage

Sie können die folgenden PowerShell- oder Azure CLI-Befehle verwenden, um mithilfe der Standardvorlage schnell einen Cluster zu erstellen.

Die verwendete Standardvorlage ist hier für Windows und hier für Ubuntu verfügbar.

Die folgenden Befehle können je nach Angabe des Betriebssystemparameters entweder Windows- oder Linux-Cluster erstellen. PowerShell- und CLI-Befehle geben das Zertifikat im angegebenen Ordner (CertificateOutputFolder) aus. (Stellen Sie sicher, dass der angegebene Speicherort des Zertifikatordners bereits vorhanden ist, bevor Sie den Befehl ausführen.)

Hinweis

Der folgende PowerShell-Befehl funktioniert nur mit dem Az-Modul von Azure PowerShell. Führen Sie den PowerShell-Befehl „Get-Module Az“ aus, um die aktuelle Version von Azure Resource Manager PowerShell zu überprüfen. Folgen Sie diesem Link, um ein Upgrade für Ihre Azure Resource Manager PowerShell-Version durchzuführen.

Bereitstellen des Clusters mithilfe von PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password123!@#" | ConvertTo-SecureString -AsPlainText -Force 
$vmpassword="Password4321!@#" | ConvertTo-SecureString -AsPlainText -Force
$vmuser="myadmin"
$os="WindowsServer2016DatacenterwithContainers"
$certOutputFolder="c:\certificates"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -OS $os -VmPassword $vmpassword -VmUserName $vmuser

Bereitstellen des Clusters mithilfe der Azure CLI:

declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare CertSubjectName="mylinux.westus.cloudapp.azure.com"
declare vmpassword="Password!1"
declare certpassword="Password!4321"
declare vmuser="myadmin"
declare vmOs="UbuntuServer1804"
declare certOutputFolder="c:\certificates"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-output-folder $certOutputFolder --certificate-password $certpassword  \
	--vault-name $vaultName --vault-resource-group $resourceGroupName  \
	--template-file $templateFilePath --parameter-file $parametersFilePath --vm-os $vmOs  \
	--vm-password $vmpassword --vm-user-name $vmuser

Verwenden einer eigenen benutzerdefinierten Vorlage

Wenn Sie eine benutzerdefinierte Vorlage für Ihre speziellen Anforderungen erstellen müssen, wird dringend empfohlen, dass Sie mit einer der Vorlagen beginnen, die unter den Azure Service Fabric-Vorlagenbeispielen verfügbar sind. Erfahren Sie, wie Sie Ihre Clustervorlage anpassen.

Wenn Sie bereits über eine benutzerdefinierte Vorlage verfügen, überprüfen Sie, ob alle drei zertifikatbezogenen Parameter in der Vorlage und der Parameterdatei wie folgt benannt wurden und die Werte wie folgt NULL sind:

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

Bereitstellen des Clusters mithilfe von PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$certOutputFolder="c:\certificates"

$parameterFilePath="c:\mytemplates\mytemplateparm.json"
$templateFilePath="c:\mytemplates\mytemplate.json"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -TemplateFile $templateFilePath -ParameterFile $parameterFilePath 

Bereitstellen des Clusters mithilfe der Azure CLI:

declare certPassword=""
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare certSubjectName="mylinuxsecure.westus.cloudapp.azure.com"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"
declare certOutputFolder="c:\certificates"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-output-folder $certOutputFolder --certificate-password $certPassword  \
	--certificate-subject-name $certSubjectName \
	--template-file $templateFilePath --parameter-file $parametersFilePath

Erstellen eines neuen Clusters mit Ihrem eigenen X.509-Zertifikat

Sie können den folgenden Befehl verwenden, um ein vorhandenes Zertifikat anzugeben, mit dem ein neuer Cluster erstellt und geschützt werden soll.

Wenn dies ein von einer ZS signiertes Zertifikat ist, das Sie letztendlich auch für andere Zwecke einsetzen möchten, dann empfiehlt es sich, eine unterschiedliche Ressourcengruppe speziell für Ihren Schlüsseltresor bereitzustellen. Es empfiehlt sich, den Schlüsseltresor in einer eigenen Ressourcengruppe zu platzieren. Dadurch können Sie die Compute- und Speicherressourcengruppen (einschließlich der Ressourcengruppe mit Ihrem Service Fabric-Cluster) entfernen, ohne Ihre Schlüssel und geheimen Schlüssel zu verlieren. Die Ressourcengruppe mit Ihrem Schlüsseltresor muss sich in der gleichen Region befinden wie der Cluster, der den Tresor verwendet.

Verwenden der im Modul enthaltenen standardmäßigen Vorlage für fünf Knoten desselben Knotentyps

Die verwendete Standardvorlage ist hier für Windows und hier für Ubuntu verfügbar.

Bereitstellen des Clusters mithilfe von PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$vmpassword=("Password!4321" | ConvertTo-SecureString -AsPlainText -Force) 
$vmuser="myadmin"
$os="WindowsServer2016DatacenterwithContainers"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -KeyVaultResourceGroupName $vaultResourceGroupName -KeyVaultName $vaultName -CertificateFile C:\MyCertificates\chackocertificate3.pfx -CertificatePassword $certPassword -OS $os -VmPassword $vmpassword -VmUserName $vmuser 

Bereitstellen des Clusters mithilfe der Azure CLI:

declare vmPassword="Password!1"
declare certPassword="Password!1"
declare vmUser="myadmin"
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare certificate-file="c:\certificates\mycert.pem"
declare vmOs="UbuntuServer1804"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-file $certificate-file --certificate-password $certPassword  \
	--vault-name $vaultName --vault-resource-group $vaultResourceGroupName  \
    --vm-os vmOs \
	--vm-password $vmPassword --vm-user-name $vmUser

Verwenden einer eigenen benutzerdefinierten Clustervorlage

Wenn Sie eine benutzerdefinierte Vorlage für Ihre speziellen Anforderungen erstellen müssen, wird dringend empfohlen, dass Sie mit einer der Vorlagen beginnen, die unter den Azure Service Fabric-Vorlagenbeispielen verfügbar sind. Erfahren Sie, wie Sie Ihre Clustervorlage anpassen.

Wenn Sie bereits über eine benutzerdefinierte Vorlage verfügen, überprüfen Sie, ob alle drei zertifikatbezogenen Parameter in der Vorlage und der Parameterdatei wie folgt benannt wurden und die Werte wie folgt NULL sind.

   "certificateThumbprint": {
      "value": ""
    },
    "sourceVaultValue": {
      "value": ""
    },
    "certificateUrlValue": {
      "value": ""
    },

Bereitstellen des Clusters mithilfe von PowerShell:

$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$vaultName="myvault"
$vaultResourceGroupName="myvaultrg"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force 
$os="WindowsServer2016DatacenterwithContainers"
$parameterFilePath="c:\mytemplates\mytemplateparm.json"
$templateFilePath="c:\mytemplates\mytemplate.json"
$certificateFile="C:\MyCertificates\chackonewcertificate3.pem"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -Location $resourceGroupLocation -TemplateFile $templateFilePath -ParameterFile $parameterFilePath -KeyVaultResourceGroupName $vaultResourceGroupName -KeyVaultName $vaultName -CertificateFile $certificateFile -CertificatePassword $certPassword

Bereitstellen des Clusters mithilfe der Azure CLI:

declare certPassword="Password!1"
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare vaultResourceGroupName="myvaultrg"
declare vaultName="myvault"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--certificate-file $certificate-file --certificate-password $password  \
	--vault-name $vaultName --vault-resource-group $vaultResourceGroupName  \
	--template-file $templateFilePath --parameter-file $parametersFilePath 

Verwenden eines Zeigers auf ein Geheimnis in einem Schlüsseltresor

Zur Verwendung eines vorhandenen Schlüsseltresors muss dieser für die Bereitstellung aktiviert werden, damit der Compute-Ressourcenanbieter Zertifikate daraus abrufen und ihn auf Clusterknoten installieren kann.

Bereitstellen des Clusters mithilfe von PowerShell:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -EnabledForDeployment

$parameterFilePath="c:\mytemplates\mytemplate.json"
$templateFilePath="c:\mytemplates\mytemplateparm.json"
$secretID="https://test1.vault.azure.net:443/secrets/testcertificate4/55ec7c4dc61a462bbc645ffc9b4b225f"

New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -SecretIdentifier $secretID -TemplateFile $templateFilePath -ParameterFile $parameterFilePath 

Bereitstellen des Clusters mithilfe der Azure CLI:

declare $resourceGroupName = "testRG"
declare $parameterFilePath="c:\mytemplates\mytemplate.json"
declare $templateFilePath="c:\mytemplates\mytemplateparm.json"
declare $secretID="https://test1.vault.azure.net:443/secrets/testcertificate4/55ec7c4dc61a462bbc645ffc9b4b225f"

az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation  \
	--secret-identifier $secretID  \
	--template-file $templateFilePath --parameter-file $parameterFilePath 

Nächste Schritte

Sie verfügen jetzt über einen sicheren Cluster, der in Azure ausgeführt wird. Als Nächstes stellen Sie eine Verbindung mit dem Cluster her und erfahren, wie Sie Anwendungsgeheimnisse verwalten.

Informationen zur JSON-Syntax und zu den Eigenschaften, die in einer Vorlage verwendet werden sollen, finden Sie in der Vorlagenreferenz Microsoft.ServiceFabric/clusters.