Tworzenie klastra usługi Service Fabric przy użyciu usługi Azure Resource Manager

Klaster usługi Azure Service Fabric to połączony z siecią zestaw maszyn wirtualnych, w którym są wdrażane i zarządzane mikrousługi. Klaster usługi Service Fabric uruchomiony na platformie Azure to zasób platformy Azure i jest wdrażany przy użyciu usługi Azure Resource Manager. W tym artykule opisano sposób wdrażania bezpiecznego klastra usługi Service Fabric na platformie Azure przy użyciu usługi Resource Manager. Możesz użyć domyślnego szablonu klastra lub szablonu niestandardowego. Jeśli nie masz jeszcze szablonu niestandardowego, możesz dowiedzieć się, jak go utworzyć.

Typ zabezpieczeń wybrany do zabezpieczenia klastra (tj. tożsamość systemu Windows, X509 itp.) musi zostać określony dla początkowego utworzenia klastra i nie można go później zmienić. Przed skonfigurowaniem klastra przeczytaj scenariusze zabezpieczeń klastra usługi Service Fabric. Na platformie Azure usługa Service Fabric używa certyfikatu x509 do zabezpieczania klastra i jego punktów końcowych, uwierzytelniania klientów i szyfrowania danych. Firma Microsoft Entra ID zaleca się również zabezpieczanie dostępu do punktów końcowych zarządzania. Aby uzyskać więcej informacji, przeczytaj Konfigurowanie identyfikatora entra firmy Microsoft w celu uwierzytelniania klientów.

Jeśli tworzysz klaster produkcyjny do uruchamiania obciążeń produkcyjnych, zalecamy najpierw zapoznanie się z listą kontrolną gotowości produkcyjnej.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

W tym artykule użyj modułów programu PowerShell lub interfejsu wiersza polecenia platformy Azure usługi Service Fabric do wdrożenia klastra:

Dokumentację referencyjną modułów usługi Service Fabric można znaleźć tutaj:

Logowanie się do platformy Azure

Przed uruchomieniem dowolnego z poleceń w tym artykule najpierw zaloguj się do platformy Azure.

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

Tworzenie nowego klastra przy użyciu wygenerowanego przez system certyfikatu z podpisem własnym

Użyj następujących poleceń, aby utworzyć klaster zabezpieczony przy użyciu certyfikatu z podpisem własnym wygenerowanego przez system. To polecenie konfiguruje podstawowy certyfikat klastra, który jest używany do zabezpieczeń klastra i skonfigurować dostęp administratora do wykonywania operacji zarządzania przy użyciu tego certyfikatu. Certyfikaty z podpisem własnym są przydatne do zabezpieczania klastrów testowych. Klastry produkcyjne powinny być zabezpieczone przy użyciu certyfikatu z urzędu certyfikacji.

Użyj domyślnego szablonu klastra dostarczanego w module

Następujące polecenia programu PowerShell lub interfejsu wiersza polecenia platformy Azure umożliwiają szybkie utworzenie klastra przy użyciu szablonu domyślnego.

Używany szablon domyślny jest dostępny tutaj dla systemu Windows i tutaj dla systemu Ubuntu.

Następujące polecenia mogą tworzyć klastry systemu Windows lub Linux w zależności od sposobu określania parametru systemu operacyjnego. Oba polecenia programu PowerShell/interfejsu wiersza polecenia wyświetlają certyfikat w określonym folderze CertificateOutputFolder (upewnij się, że określona lokalizacja folderu certyfikatu już istnieje przed uruchomieniem polecenia!).

Uwaga

Następujące polecenie programu PowerShell działa tylko z modułem Azure PowerShell Az . Aby sprawdzić bieżącą wersję programu PowerShell usługi Azure Resource Manager, uruchom następujące polecenie programu PowerShell "Get-Module Az". Postępuj zgodnie z tym linkiem , aby uaktualnić wersję programu PowerShell usługi Azure Resource Manager.

Wdróż klaster przy użyciu programu 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

Wdróż klaster przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Korzystanie z własnego szablonu niestandardowego

Jeśli musisz utworzyć szablon niestandardowy zgodnie z twoimi potrzebami, zdecydowanie zaleca się rozpoczęcie od jednego z szablonów dostępnych w przykładach szablonów usługi Azure Service Fabric. Dowiedz się, jak dostosować szablon klastra.

Jeśli masz już szablon niestandardowy, sprawdź dokładnie, czy wszystkie trzy parametry powiązane z certyfikatem w szablonie i plik parametrów są nazwane w następujący sposób, a wartości mają wartość null w następujący sposób:

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

Wdróż klaster przy użyciu programu 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 

Wdróż klaster przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Tworzenie nowego klastra przy użyciu własnego certyfikatu X.509

Możesz użyć następującego polecenia, aby określić istniejący certyfikat do utworzenia i zabezpieczenia nowego klastra za pomocą polecenia .

Jeśli jest to certyfikat podpisany przez urząd certyfikacji, który również będzie używany do innych celów, zaleca się podanie odrębnej grupy zasobów specjalnie dla magazynu kluczy. Zalecamy umieszczenie magazynu kluczy we własnej grupie zasobów. Ta akcja umożliwia usunięcie grup zasobów obliczeniowych i magazynowych, w tym grupy zasobów zawierającej klaster usługi Service Fabric bez utraty kluczy i wpisów tajnych. Grupa zasobów zawierająca magazyn kluczy musi znajdować się w tym samym regionie , w którym jest używany klaster.

Użyj domyślnego pięciu węzłów, jednego szablonu typu węzła dostarczanego w module

Używany szablon domyślny jest dostępny tutaj dla systemu Windows i tutaj dla systemu Ubuntu.

Wdróż klaster przy użyciu programu 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 

Wdróż klaster przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Korzystanie z własnego niestandardowego szablonu klastra

Jeśli musisz utworzyć szablon niestandardowy zgodnie z twoimi potrzebami, zdecydowanie zaleca się rozpoczęcie od jednego z szablonów dostępnych w przykładach szablonów usługi Azure Service Fabric. Dowiedz się, jak dostosować szablon klastra.

Jeśli masz już szablon niestandardowy, upewnij się, że wszystkie trzy parametry powiązane z certyfikatem w szablonie i plik parametrów są nazwane w następujący sposób, a wartości mają wartość null w następujący sposób.

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

Wdróż klaster przy użyciu programu 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

Wdróż klaster przy użyciu interfejsu wiersza polecenia platformy Azure:

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 

Używanie wskaźnika do wpisu tajnego przekazanego do magazynu kluczy

Aby można było korzystać z istniejącego magazynu kluczy, należy włączyć magazyn kluczy do wdrożenia , aby umożliwić dostawcy zasobów obliczeniowych pobieranie z niego certyfikatów i instalowanie go w węzłach klastra.

Wdróż klaster przy użyciu programu 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 

Wdróż klaster przy użyciu interfejsu wiersza polecenia platformy Azure:

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 

Następne kroki

W tym momencie masz bezpieczny klaster działający na platformie Azure. Następnie połącz się z klastrem i dowiedz się, jak zarządzać wpisami tajnymi aplikacji.

Aby uzyskać informacje o składni i właściwościach JSON do użycia szablonu, zobacz Dokumentacja szablonu Microsoft.ServiceFabric/clusters.