Share via


Azure Resource Manager kullanarak Service Fabric kümesi oluşturma

Azure Service Fabric kümesi, mikro hizmetlerinizin dağıtıldığı ve yönetildiği ağa bağlı bir sanal makine kümesidir. Azure'da çalışan service fabric kümesi bir Azure kaynağıdır ve Azure Resource Manager kullanılarak dağıtılır. Bu makalede, Resource Manager kullanarak Azure'da güvenli bir Service Fabric kümesinin nasıl dağıtılacağı açıklanır. Varsayılan küme şablonunu veya özel bir şablonu kullanabilirsiniz. Henüz özel bir şablonunuz yoksa nasıl oluşturulacağını öğrenebilirsiniz.

Kümenin güvenliğini sağlamak için seçilen güvenlik türü (windows kimliği, X509 vb.) kümenin ilk oluşturulması için belirtilmelidir ve bundan sonra değiştirilemez. Kümeyi ayarlamadan önce Service Fabric kümesi güvenlik senaryoları'nı okuyun. Azure'da Service Fabric, kümenizin ve uç noktalarının güvenliğini sağlamak, istemcilerin kimliğini doğrulamak ve verileri şifrelemek için x509 sertifikasını kullanır. Yönetim uç noktalarına erişimin güvenliğini sağlamak için Microsoft Entra Id de önerilir. Daha fazla bilgi için bkz . İstemcilerin kimliğini doğrulamak için Microsoft Entra Id'yi ayarlama.

Üretim iş yüklerini çalıştırmak için bir üretim kümesi oluşturuyorsanız, önce üretim hazırlığı denetim listesini okumanızı öneririz.

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Ön koşullar

Bu makalede, küme dağıtmak için Service Fabric RM PowerShell veya Azure CLI modüllerini kullanın:

Service Fabric modüllerinin başvuru belgelerini burada bulabilirsiniz:

Azure'da oturum açma

Bu makaledeki komutlardan herhangi birini çalıştırmadan önce Azure'da oturum açın.

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

Sistem tarafından oluşturulan otomatik olarak imzalanan sertifikayı kullanarak yeni küme oluşturma

Sistem tarafından oluşturulan otomatik olarak imzalanan sertifikayla güvenliği sağlanan bir küme oluşturmak için aşağıdaki komutları kullanın. Bu komut, küme güvenliği ve bu sertifikayı kullanarak yönetim işlemlerini gerçekleştirmek üzere yönetici erişimini ayarlamak için kullanılan bir birincil küme sertifikası ayarlar. Otomatik olarak imzalanan sertifikalar, test kümelerinin güvenliğini sağlamak için kullanışlıdır. Üretim kümelerinin güvenliği bir sertifika yetkilisinden (CA) alınan bir sertifikayla sağlanmalıdır.

Modülde gelen varsayılan küme şablonunu kullanma

Varsayılan şablonu kullanarak hızlı bir şekilde küme oluşturmak için aşağıdaki PowerShell veya Azure CLI komutlarını kullanabilirsiniz.

Kullanılan varsayılan şablon burada Windows ve burada Ubuntu için kullanılabilir.

Aşağıdaki komutlar, işletim sistemi parametresini nasıl belirttiğinize bağlı olarak Windows veya Linux kümeleri oluşturabilir. Her iki PowerShell/CLI komutu da sertifikayı belirtilen CertificateOutputFolder'da verir (komutu çalıştırmadan önce belirttiğiniz sertifika klasörü konumunun zaten var olduğundan emin olun!).

Dekont

Aşağıdaki PowerShell komutu yalnızca Azure PowerShell Az modülüyle çalışır. Azure Resource Manager PowerShell sürümünün geçerli sürümünü denetlemek için aşağıdaki "Get-Module Az" PowerShell komutunu çalıştırın. Azure Resource Manager PowerShell sürümünüzü yükseltmek için bu bağlantıyı izleyin.

PowerShell kullanarak kümeyi dağıtma:

$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

Azure CLI kullanarak kümeyi dağıtma:

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

Kendi özel şablonunuzu kullanma

Gereksinimlerinize uygun bir özel şablon yazmanız gerekiyorsa, Azure Service Fabric şablon örneklerinde bulunan şablonlardan biriyle başlamanız kesinlikle önerilir. Küme şablonunuzu özelleştirmeyi öğrenin.

Zaten özel bir şablonunuz varsa, şablondaki ve parametre dosyasındaki sertifikayla ilgili üç parametrenin tümünün aşağıdaki gibi adlandırılıp adlandırıldığını ve değerlerin aşağıdaki gibi null olup olmadığını bir kez daha denetleyin:

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

PowerShell kullanarak kümeyi dağıtma:

$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 

Azure CLI kullanarak kümeyi dağıtma:

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

Kendi X.509 sertifikanızı kullanarak yeni küme oluşturma

Yeni bir küme oluşturmak ve güvenliğini sağlamak üzere mevcut bir sertifikayı belirtmek için aşağıdaki komutu kullanabilirsiniz.

Bu, başka amaçlarla da kullanacağınız CA imzalı bir sertifikaysa, anahtar kasanız için özel olarak ayrı bir kaynak grubu sağlamanız önerilir. Anahtar kasasını kendi kaynak grubuna yerleştirmenizi öneririz. Bu eylem, anahtarlarınızı ve gizli dizilerinizi kaybetmeden Service Fabric kümenizi içeren kaynak grubu da dahil olmak üzere işlem ve depolama kaynak gruplarını kaldırmanıza olanak tanır. Anahtar kasanızı içeren kaynak grubu, onu kullanan kümeyle aynı bölgede olmalıdır.

Modülde gelen bir düğüm türü şablonu olan varsayılan beş düğümü kullanın

Kullanılan varsayılan şablon burada Windows ve burada Ubuntu için kullanılabilir.

PowerShell kullanarak kümeyi dağıtma:

$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 

Azure CLI kullanarak kümeyi dağıtma:

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

Kendi özel küme şablonunuzu kullanma

Gereksinimlerinize uygun bir özel şablon yazmanız gerekiyorsa, Azure Service Fabric şablon örneklerinde bulunan şablonlardan biriyle başlamanız kesinlikle önerilir. Küme şablonunuzu özelleştirmeyi öğrenin.

Zaten bir özel şablonunuz varsa, şablondaki ve parametre dosyasındaki sertifikayla ilgili üç parametrenin tümünün aşağıdaki gibi adlandırıldığından ve değerlerin aşağıdaki gibi null olduğundan emin olun.

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

PowerShell kullanarak kümeyi dağıtma:

$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

Azure CLI kullanarak kümeyi dağıtma:

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 

Anahtar kasasına yüklenen gizli diziye işaretçi kullanma

Mevcut bir anahtar kasasını kullanmak için, işlem kaynağı sağlayıcısının ondan sertifika almasına ve küme düğümlerine yüklemesine izin vermek için anahtar kasasının dağıtım için etkinleştirilmesi gerekir.

PowerShell kullanarak kümeyi dağıtma:

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 

Azure CLI kullanarak kümeyi dağıtma:

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 

Sonraki adımlar

Bu noktada Azure'da çalışan güvenli bir kümeniz vardır. Ardından kümenize bağlanın ve uygulama gizli dizilerini yönetmeyi öğrenin.

JSON söz dizimi ve özellikleri için bkz . Microsoft.ServiceFabric/clusters şablon başvurusu.