Vytvoření clusteru Service Fabric pomocí Azure Resource Manageru

Cluster Azure Service Fabric je sada virtuálních počítačů připojených k síti, do kterých se nasazují a spravují vaše mikroslužby. Cluster Service Fabric spuštěný v Azure je prostředek Azure a nasazuje se pomocí Azure Resource Manageru. Tento článek popisuje, jak nasadit zabezpečený cluster Service Fabric v Azure pomocí Resource Manageru. Můžete použít výchozí šablonu clusteru nebo vlastní šablonu. Pokud ještě nemáte vlastní šablonu, můžete se dozvědět, jak ji vytvořit.

Typ zabezpečení zvolený k zabezpečení clusteru (tj. identita Systému Windows, X509 atd.) musí být zadán pro počáteční vytvoření clusteru a potom ho nelze změnit. Před nastavením clusteru si přečtěte scénáře zabezpečení clusteru Service Fabric. Service Fabric v Azure používá certifikát x509 k zabezpečení clusteru a jeho koncových bodů, ověřování klientů a šifrování dat. K zabezpečení přístupu ke koncovým bodům správy se doporučuje také ID Microsoft Entra. Další informace najdete v tématu Nastavení ID Microsoft Entra pro ověřování klientů.

Pokud vytváříte produkční cluster pro spouštění produkčních úloh, doporučujeme nejprve si projít kontrolní seznam připravenosti pro produkční prostředí.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Předpoklady

V tomto článku použijte moduly Service Fabric RM PowerShell nebo Azure CLI k nasazení clusteru:

Referenční dokumentaci k modulům Service Fabric najdete tady:

Přihlášení k Azure

Před spuštěním některého z příkazů v tomto článku se nejprve přihlaste k Azure.

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

Vytvoření nového clusteru pomocí systému vygenerovaného certifikátu podepsaného svým držitelem

Pomocí následujících příkazů vytvořte cluster zabezpečený systémem vygenerovaným certifikátem podepsaným svým držitelem. Tento příkaz nastaví primární certifikát clusteru, který se používá pro zabezpečení clusteru, a nastaví přístup správce k provádění operací správy pomocí tohoto certifikátu. Certifikáty podepsané svým držitelem jsou užitečné pro zabezpečení testovacích clusterů. Produkční clustery by měly být zabezpečeny certifikátem od certifikační autority (CA).

Použití výchozí šablony clusteru, která se dodává v modulu

K rychlému vytvoření clusteru pomocí výchozí šablony můžete použít následující příkazy PowerShellu nebo Azure CLI.

Výchozí použitá šablona je k dispozici pro Windows a tady pro Ubuntu.

Následující příkazy můžou vytvořit clustery s Windows nebo Linuxem v závislosti na tom, jak zadáte parametr operačního systému. Oba příkazy PowerShellu nebo rozhraní příkazového řádku vypisují certifikát v zadaném CertificateOutputFolderu (před spuštěním příkazu se ujistěte, že umístění složky certifikátu, které jste zadali, již existuje).)

Poznámka:

Následující příkaz PowerShellu funguje jenom s modulem Azure PowerShellu Az . Pokud chcete zkontrolovat aktuální verzi PowerShellu Azure Resource Manageru, spusťte následující příkaz PowerShellu Get-Module Az. Na tomto odkazu upgradujte verzi PowerShellu Azure Resource Manageru.

Nasazení clusteru pomocí PowerShellu:

$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

Nasazení clusteru pomocí 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

Použití vlastní šablony

Pokud potřebujete vytvořit vlastní šablonu tak, aby vyhovovala vašim potřebám, důrazně doporučujeme začít s jednou ze šablon, které jsou k dispozici v ukázkách šablon Azure Service Fabric. Zjistěte, jak přizpůsobit šablonu clusteru.

Pokud už máte vlastní šablonu, pečlivě zkontrolujte, že všechny tři parametry související s certifikáty v šabloně a soubor parametrů jsou pojmenované následujícím způsobem a hodnoty mají hodnotu null takto:

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

Nasazení clusteru pomocí PowerShellu:

$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 

Nasazení clusteru pomocí 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

Vytvoření nového clusteru pomocí vlastního certifikátu X.509

Pomocí následujícího příkazu můžete zadat existující certifikát pro vytvoření a zabezpečení nového clusteru.

Pokud se jedná o certifikát podepsaný certifikační autoritou, který budete používat i pro jiné účely, doporučujeme zadat jedinečnou skupinu prostředků speciálně pro váš trezor klíčů. Doporučujeme umístit trezor klíčů do vlastní skupiny prostředků. Tato akce umožňuje odebrat skupiny prostředků výpočetních prostředků a úložiště, včetně skupiny prostředků, která obsahuje cluster Service Fabric, aniž byste ztratili klíče a tajné kódy. Skupina prostředků, která obsahuje váš trezor klíčů, musí být ve stejné oblasti jako cluster, který ho používá.

Použijte výchozí pět uzlů, jednu šablonu typu uzlu, která se dodává v modulu.

Výchozí použitá šablona je k dispozici pro Windows a tady pro Ubuntu.

Nasazení clusteru pomocí PowerShellu:

$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 

Nasazení clusteru pomocí 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

Použití vlastní šablony clusteru

Pokud potřebujete vytvořit vlastní šablonu tak, aby vyhovovala vašim potřebám, důrazně doporučujeme začít s jednou ze šablon, které jsou k dispozici v ukázkách šablon Azure Service Fabric. Zjistěte, jak přizpůsobit šablonu clusteru.

Pokud už máte vlastní šablonu, nezapomeňte pečlivě zkontrolovat, že všechny tři parametry související s certifikáty v šabloně a soubor parametrů jsou pojmenované následujícím způsobem a hodnoty mají hodnotu null následujícím způsobem.

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

Nasazení clusteru pomocí PowerShellu:

$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

Nasazení clusteru pomocí 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 

Použití ukazatele na tajný klíč nahraný do trezoru klíčů

Pokud chcete použít existující trezor klíčů, musí být trezor klíčů povolený, aby mohl poskytovatel výpočetních prostředků získat certifikáty a nainstalovat ho na uzly clusteru.

Nasazení clusteru pomocí PowerShellu:

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 

Nasazení clusteru pomocí 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 

Další kroky

V tuto chvíli máte zabezpečený cluster spuštěný v Azure. Dále se připojte ke clusteru a zjistěte, jak spravovat tajné kódy aplikací.

Informace o syntaxi a vlastnostech JSON pro použití šablony najdete v referenčních informacích k šablonám Microsoft.ServiceFabric/clusters.