Aracılığıyla paylaş


Azure sanal ağına Linux Service Fabric Linux kümesi dağıtma

Bu makalede, Azure CLI ve şablon kullanarak Bir Linux Service Fabric kümesini Azure sanal ağına (VNET) dağıtmayı öğreneceksiniz. Öğreticiyi tamamladığınızda, bulutta çalışan ve uygulama dağıtabileceğiniz bir kümeniz olur. PowerShell kullanarak Windows kümesi oluşturmak için bkz. Azure’da güvenli bir Windows kümesi oluşturma.

Önkoşullar

Başlamadan önce:

Aşağıdaki yordamlar yedi düğümlü bir Service Fabric kümesi oluşturur. Azure’da Service Fabric kümesi çalıştırmaktan kaynaklanan maliyetleri hesaplamak için Azure Fiyatlandırma Hesaplayıcısı’nı kullanın.

Şablonu indirin ve keşfedin

Aşağıdaki Resource Manager şablonu dosyalarını indirin:

Ubuntu 18.04 LTS için:

  • AzureDeploy.json
    • vmImageSku özniteliği "18.04-LTS"
    • Microsoft.ServiceFabric/clusters kaynağının
      • apiVersion "2019-03-01" olarak ayarlanıyor
      • vmImage özelliği "Ubuntu18_04" olarak ayarlanıyor
  • AzureDeploy.Parameters.json

Ubuntu 20.04 LTS için:

  • AzureDeploy.json
    • vmImageSku özniteliği "20.04-LTS"
    • Microsoft.ServiceFabric/clusters kaynağının
      • apiVersion "2019-03-01" olarak ayarlanıyor
      • vmImage özelliği "Ubuntu20_04" olarak ayarlanıyor
  • AzureDeploy.Parameters.json

Bu şablonlar bir sanal ağa yedi sanal makine ve üç düğüm türünden oluşan güvenli bir küme dağıtır. Diğer örnek şablonlar GitHub'da bulunabilir. AzureDeploy.json aşağıdakiler de dahil olmak üzere bir dizi kaynak dağıtır.

Service Fabric kümesi

Microsoft.ServiceFabric/clusters kaynağında şu özelliklere sahip bir Linux kümesi dağıtılır:

  • üç düğüm türü
  • birincil düğüm türünde beş düğüm (şablon parametrelerinde yapılandırılabilir), diğer düğüm türlerinin her birinde bir düğüm
  • İşletim sistemi: (Ubuntu 18.04 LTS / Ubuntu 20.04) (şablon parametrelerinde yapılandırılabilir)
  • sertifikanın güvenliğinin sağlanması (şablon parametrelerinde yapılandırılabilir)
  • DNS hizmeti etkin
  • Bronz dayanıklılık düzeyi (şablon parametrelerinde yapılandırılabilir)
  • Gümüş güvenilirlik düzeyi (şablon parametrelerinden yapılandırılabilir)
  • istemci bağlantısı uç noktası: 19000 (şablon parametrelerinde yapılandırılabilir)
  • HTTP ağ geçidi uç noktası: 19080 (şablon parametrelerinde yapılandırılabilir)

Azure yük dengeleyici

Microsoft.Network/loadBalancers kaynağında bir yük dengeleyici yapılandırılır ve aşağıdaki bağlantı noktaları için yoklamalar ve kurallar ayarlanır:

  • istemci bağlantı uç noktası: 19000
  • HTTP ağ geçidi uç noktası: 19080
  • uygulama bağlantı noktası: 80
  • uygulama bağlantı noktası: 443

Sanal ağ ve alt ağ

Sanal ağın ve alt ağın adları şablon parametrelerinde bildirilmiştir. Sanal ağın ve alt ağın adres alanları da şablon parametrelerinde bildirilir ve Microsoft.Network/virtualNetworks kaynağında yapılandırılır:

  • sanal ağ adres alanı: 10.0.0.0/16
  • Service Fabric alt ağ adres alanı: 10.0.2.0/24

Başka bir uygulama bağlantı noktası gerekiyorsa, gelen trafiğe izin vermek için Microsoft.Network/loadBalancers kaynağını ayarlamak gerekir.

Service Fabric Uzantısı

Microsoft.Compute/virtualMachineScaleSets kaynağında Service Fabric Linux uzantısı yapılandırılır. Bu uzantı, Service Fabric'i Azure Sanal Makineler önyüklemek ve Node Security'yi yapılandırmak için kullanılır.

Aşağıda Service Fabric Linux uzantısı için bir şablon parçacığı yer alır:

"extensions": [
  {
    "name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
    "properties": {
      "type": "ServiceFabricLinuxNode",
      "autoUpgradeMinorVersion": true,
      "enableAutomaticUpgrade": true,
      "protectedSettings": {
        "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key1]",
       },
       "publisher": "Microsoft.Azure.ServiceFabric",
       "settings": {
         "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
         "nodeTypeRef": "[variables('vmNodeType0Name')]",
         "durabilityLevel": "Silver",
         "enableParallelJobs": true,
         "nicPrefixOverride": "[variables('subnet0Prefix')]",
         "certificate": {
           "commonNames": [
             "[parameters('certificateCommonName')]"
           ],
           "x509StoreName": "[parameters('certificateStoreValue')]"
         }
       },
       "typeHandlerVersion": "2.0"
     }
   },

Şablon parametrelerini ayarlama

AzureDeploy.Parameters dosyası, kümeyi ve ilişkili kaynakları dağıtmak için kullanılan birçok değeri bildirir. Dağıtımınız için değiştirmeniz gerekebilecek bazı parametreler:

Parametre Örnek değer Notlar
adminUserName vmadmin Küme VM’leri için yönetici kullanıcı adı.
adminPassword Password#1234 Küme VM’leri için yönetici parolası.
clusterName mysfcluster123 Kümenin adı.
konum Orta Güney ABD Kümenin konumu.
certificateThumbprint

Otomatik olarak imzalanan bir sertifika oluşturuluyor veya sertifika dosyası sağlanıyorsa değer boş olmalıdır.

Daha önce bir anahtar kasasına yüklenmiş mevcut bir sertifikayı kullanmak için sertifika SHA1 parmak izi değerini girin. Örneğin: "6190390162C988701DB5676EB81083EA608DCCF3".

certificateUrlValue

Otomatik olarak imzalanan bir sertifika oluşturuluyor veya sertifika dosyası sağlanıyorsa değer boş olmalıdır.

Daha önce bir anahtar kasasına yüklenmiş mevcut bir sertifikayı kullanmak için sertifika URL’sini girin. Örneğin, "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346".

sourceVaultValue

Otomatik olarak imzalanan bir sertifika oluşturuluyor veya sertifika dosyası sağlanıyorsa değer boş olmalıdır.

Daha önce bir anahtar kasasına yüklenmiş mevcut bir sertifikayı kullanmak için kaynak kasa değerini girin. Örneğin: "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT".

Sanal ağı ve kümeyi dağıtma

Ardından, ağ topolojisini ayarlayın ve Service Fabric kümesini dağıtın. AzureDeploy.json Resource Manager şablonu Service Fabric için bir sanal ağ (VNET) ve bir alt ağ oluşturur. Şablon tarafından sertifika güvenliği etkin bir küme de dağıtılır. Üretim kümeleri için küme sertifikası olarak bir sertifika yetkilisinden (CA) alınan bir sertifika kullanın. Test kümelerinin güvenliğinin sağlanması için otomatik olarak imzalanan bir sertifika kullanılabilir.

Bu makaledeki şablon, küme sertifikasını tanımlamak için sertifika parmak izini kullanan bir küme dağıtır. İki sertifika aynı parmak izine sahip olamaz ve bu da sertifika yönetimini daha zor hale getirir. Dağıtılan bir kümeyi sertifika parmak izinden sertifika ortak adlarını kullanmaya geçirme, sertifika yönetimini çok daha basit hale getirir. Kümeyi sertifika yönetimi için sertifika ortak adlarını kullanacak şekilde güncelleştirme hakkında bilgi edinmek için kümeyi sertifika ortak ad yönetimine değiştirme bölümüne bakın.

Mevcut bir sertifikayı kullanarak küme oluşturma

Aşağıdaki betik, mevcut bir sertifikayla güvenliği sağlanmış yeni bir küme dağıtmak için az sf cluster create komutunu ve şablonunu kullanır. Ayrıca, komut tarafından Azure’da yeni bir anahtar kasası oluşturulur ve sertifikanız karşıya yüklenir.

ResourceGroupName="sflinuxclustergroup"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates\MyCertificate.pem"

# sign in to your Azure account and select your subscription
az login
az account set --subscription <guid>

# Create a new resource group for your deployment and give it a name and a location.
az group create --name $ResourceGroupName --location $Location

# Create the Service Fabric cluster.
az sf cluster create --resource-group $ResourceGroupName --location $Location \
   --certificate-password $Password --certificate-file $CertPath \
   --vault-name $VaultName --vault-resource-group $ResourceGroupName  \
   --template-file AzureDeploy.json --parameter-file AzureDeploy.Parameters.json

Yeni ve otomatik olarak imzalanan bir sertifika ile küme oluşturma

Aşağıdaki betik, Azure'a yeni bir küme dağıtmak için az sf cluster create komutunu ve bir şablonu kullanır. Komut ayrıca Azure'da yeni bir anahtar kasası oluşturur, anahtar kasasına otomatik olarak imzalanan yeni bir sertifika ekler ve sertifika dosyasını yerel olarak indirir.

ResourceGroupName="sflinuxclustergroup"
ClusterName="sflinuxcluster"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates"

az sf cluster create --resource-group $ResourceGroupName --location $Location \
   --cluster-name $ClusterName --template-file C:\temp\cluster\AzureDeploy.json \
   --parameter-file C:\temp\cluster\AzureDeploy.Parameters.json --certificate-password $Password \
   --certificate-output-folder $CertPath --certificate-subject-name $ClusterName.$Location.cloudapp.azure.com \
   --vault-name $VaultName --vault-resource-group $ResourceGroupName

Güvenli kümeye bağlanma

Anahtarınızı kullanarak, Service Fabric CLI sfctl cluster select komutunu kullanan kümeye bağlanın. Otomatik olarak imzalanan sertifika için yalnızca --no-verify seçeneğinin kullanılması gerektiğini göz önünde bulundurun.

sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify

Bağlı olup olmadığınızı ve kümenin sağlıklı olup olmadığını denetlemek için sfctl cluster health komutunu kullanın.

sfctl cluster health

Kaynakları temizleme

Hemen bir sonraki makaleye geçmeyecekseniz ücret alınmaması için kümeyi silmeniz iyi olur.

Sonraki adımlar

Kümeyi ölçeklendirmeyi öğrenin.

Bu makaledeki şablon, küme sertifikasını tanımlamak için sertifika parmak izini kullanan bir küme dağıtır. İki sertifika aynı parmak izine sahip olamaz ve bu da sertifika yönetimini daha zor hale getirir. Dağıtılan bir kümeyi sertifika parmak izinden sertifika ortak adlarını kullanmaya geçirme, sertifika yönetimini çok daha basit hale getirir. Kümeyi sertifika yönetimi için sertifika ortak adlarını kullanacak şekilde güncelleştirme hakkında bilgi edinmek için kümeyi sertifika ortak ad yönetimine değiştirme bölümüne bakın.