Een Service Fabric-cluster maken met Azure Resource Manager

Een Azure Service Fabric-cluster is een met het netwerk verbonden set virtuele machines waarin uw microservices worden geïmplementeerd en beheerd. Een Service Fabric-cluster dat wordt uitgevoerd in Azure is een Azure-resource en wordt geïmplementeerd met behulp van Azure Resource Manager. In dit artikel wordt beschreven hoe u een beveiligd Service Fabric-cluster in Azure implementeert met behulp van Resource Manager. U kunt een standaardclustersjabloon of een aangepaste sjabloon gebruiken. Als u nog geen aangepaste sjabloon hebt, kunt u leren hoe u er een maakt.

Het type beveiliging dat is gekozen om het cluster te beveiligen (bijvoorbeeld Windows-identiteit, X509, enzovoort) moet worden opgegeven voor het maken van het cluster en kan daarna niet meer worden gewijzigd. Lees beveiligingsscenario's voor Service Fabric-clusters voordat u een cluster instelt. In Azure gebruikt Service Fabric x509-certificaat om uw cluster en de eindpunten ervan te beveiligen, clients te verifiëren en gegevens te versleutelen. Microsoft Entra-id wordt ook aanbevolen om de toegang tot beheereindpunten te beveiligen. Lees Microsoft Entra-id instellen voor het verifiëren van clients voor meer informatie.

Als u een productiecluster maakt om productieworkloads uit te voeren, raden we u aan eerst de controlelijst voor productiegereedheid door te lezen.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Vereisten

In dit artikel gebruikt u de Service Fabric RM PowerShell- of Azure CLI-modules om een cluster te implementeren:

U vindt de referentiedocumentatie voor de Service Fabric-modules hier:

Aanmelden bij Azure

Meld u eerst aan bij Azure voordat u een van de opdrachten in dit artikel uitvoert.

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

Een nieuw cluster maken met behulp van een door het systeem gegenereerd zelfondertekend certificaat

Gebruik de volgende opdrachten om een cluster te maken dat is beveiligd met een door het systeem gegenereerd zelfondertekend certificaat. Met deze opdracht stelt u een primair clustercertificaat in dat wordt gebruikt voor clusterbeveiliging en om beheerderstoegang in te stellen voor het uitvoeren van beheerbewerkingen met dat certificaat. Zelfondertekende certificaten zijn handig voor het beveiligen van testclusters. Productieclusters moeten worden beveiligd met een certificaat van een certificeringsinstantie (CA).

De standaardclustersjabloon gebruiken die in de module wordt geleverd

U kunt de volgende PowerShell- of Azure CLI-opdrachten gebruiken om snel een cluster te maken met behulp van de standaardsjabloon.

De standaardsjabloon die wordt gebruikt, is hier beschikbaar voor Windows en hier voor Ubuntu.

Met de volgende opdrachten kunt u Windows- of Linux-clusters maken, afhankelijk van hoe u de parameter van het besturingssysteem opgeeft. Beide PowerShell-/CLI-opdrachten voeren het certificaat uit in de opgegeven CertificateOutputFolder (zorg ervoor dat de locatie van de certificaatmap die u opgeeft al bestaat voordat u de opdracht uitvoert).)

Notitie

De volgende PowerShell-opdracht werkt alleen met de Azure PowerShell-module Az . Als u de huidige versie van De PowerShell-versie van Azure Resource Manager wilt controleren, voert u de volgende PowerShell-opdracht 'Get-Module Az' uit. Volg deze koppeling om uw Azure Resource Manager PowerShell-versie te upgraden.

Implementeer het cluster met behulp van 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

Implementeer het cluster met behulp van 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

Uw eigen aangepaste sjabloon gebruiken

Als u een aangepaste sjabloon wilt maken die aan uw behoeften voldoet, wordt het ten zeerste aanbevolen dat u begint met een van de sjablonen die beschikbaar zijn in de Azure Service Fabric-sjabloonvoorbeelden. Meer informatie over het aanpassen van uw clustersjabloon.

Als u al een aangepaste sjabloon hebt, controleert u of alle drie de certificaatgerelateerde parameters in de sjabloon en het parameterbestand als volgt worden genoemd en de waarden als volgt null zijn:

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

Implementeer het cluster met behulp van 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 

Implementeer het cluster met behulp van 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

Een nieuw cluster maken met uw eigen X.509-certificaat

U kunt de volgende opdracht gebruiken om een bestaand certificaat op te geven waarmee u een nieuw cluster wilt maken en beveiligen.

Als dit een door een CA ondertekend certificaat is dat u ook voor andere doeleinden gaat gebruiken, wordt u aangeraden een afzonderlijke resourcegroep specifiek voor uw sleutelkluis op te geven. U wordt aangeraden de sleutelkluis in een eigen resourcegroep te plaatsen. Met deze actie kunt u de reken- en opslagresourcegroepen verwijderen, inclusief de resourcegroep die uw Service Fabric-cluster bevat, zonder dat uw sleutels en geheimen verloren gaan. De resourcegroep die uw sleutelkluis bevat, moet zich in dezelfde regio bevinden als het cluster dat deze gebruikt.

Gebruik de standaard vijf knooppunten, één knooppunttypesjabloon die in de module wordt geleverd

De standaardsjabloon die wordt gebruikt, is hier beschikbaar voor Windows en hier voor Ubuntu.

Implementeer het cluster met behulp van 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 

Implementeer het cluster met behulp van 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

Uw eigen aangepaste clustersjabloon gebruiken

Als u een aangepaste sjabloon wilt maken die aan uw behoeften voldoet, wordt het ten zeerste aanbevolen dat u begint met een van de sjablonen die beschikbaar zijn in de Azure Service Fabric-sjabloonvoorbeelden. Meer informatie over het aanpassen van uw clustersjabloon.

Als u al een aangepaste sjabloon hebt, controleert u of alle drie de certificaatgerelateerde parameters in de sjabloon en het parameterbestand als volgt worden genoemd en dat de waarden als volgt null zijn.

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

Implementeer het cluster met behulp van 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

Implementeer het cluster met behulp van 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 

Een aanwijzer gebruiken naar een geheim dat is geüpload naar een sleutelkluis

Als u een bestaande sleutelkluis wilt gebruiken, moet de sleutelkluis zijn ingeschakeld voor implementatie , zodat de rekenresourceprovider certificaten kan ophalen en installeren op clusterknooppunten.

Implementeer het cluster met behulp van 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 

Implementeer het cluster met behulp van 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 

Volgende stappen

Op dit moment hebt u een beveiligd cluster dat wordt uitgevoerd in Azure. Maak vervolgens verbinding met uw cluster en leer hoe u toepassingsgeheimen beheert.

Zie de sjabloonreferentie voor Microsoft.ServiceFabric/clusters voor de JSON-syntaxis en eigenschappen voor het gebruik van een sjabloon.