Öğretici: Windows çalıştıran bir Service Fabric kümesini Azure sanal ağına dağıtma
Bu öğretici, bir serinin birinci bölümüdür. PowerShell ve şablon kullanarak Windows çalıştıran bir Azure Service Fabric kümesini azure sanal ağına ve ağ güvenlik grubuna dağıtmayı öğreneceksiniz. İşiniz bittiğinde, bulutta çalışan ve uygulamaları dağıtabileceğiniz bir kümeniz olur. Azure CLI kullanan bir Linux kümesi oluşturmak için bkz . Azure'da güvenli bir Linux kümesi oluşturma.
Bu öğreticide bir üretim senaryosu açıklanır. Test amacıyla daha küçük bir küme oluşturmak istiyorsanız bkz . Test kümesi oluşturma.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- PowerShell kullanarak Azure’da VNet oluşturma
- Anahtar kasası oluşturma ve karşıya sertifika yükleme
- Microsoft Entra kimlik doğrulamayı ayarlama
- Tanılama koleksiyonunu yapılandırma
- EventStore hizmetini ayarlama
- Azure İzleyici günlüklerini ayarlama
- Azure PowerShell’de güvenli bir Service Fabric kümesi oluşturma
- X.509 sertifikasıyla kümenin güvenliğini sağlama
- PowerShell kullanarak kümeye bağlanma
- Bir kümeyi kaldırma
Bu öğretici dizisinde şunların nasıl yapıldığını öğrenirsiniz:
- Azure’da güvenli bir küme oluşturma
- Kümeyi izleme
- Bir kümenin ölçeğini daraltma veya genişletme
- Bir kümenin çalışma zamanını yükseltme
- Küme silme
Not
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.
Önkoşullar
Bu öğreticiye başlamadan önce:
- Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.
- Service Fabric SDK'sını ve PowerShell modülünü yükleyin.
- Azure PowerShell'i yükleyin.
- Azure kümelerinin temel kavramlarını gözden geçirin.
- Üretim kümesi dağıtımı planlama ve hazırlama .
Aşağıdaki yordamlar yedi düğümlü bir Service Fabric kümesi oluşturur. Azure'da Service Fabric kümesi çalıştırarak tahakkuk eden maliyeti hesaplamak için Azure Fiyatlandırma Hesaplayıcısı'nı kullanın.
Şablonu indirin ve keşfedin
Aşağıdaki Azure Resource Manager şablon dosyalarını indirin:
Bu şablon, yedi sanal makine ve üç düğüm türünden oluşan güvenli bir kümeyi bir sanal ağa ve bir ağ güvenlik grubuna 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 Windows kümesi yapılandırılır:
- Üç düğüm türü.
- Birincil düğüm türünde beş düğüm (şablon parametrelerinde yapılandırılabilir) ve diğer iki düğüm türünün her birinde bir düğüm.
- İşletim sistemi: Kapsayıcılar ile Windows Server 2016 Datacenter (şablon parametrelerinde yapılandırılabilir).
- Güvenli sertifika (şablon parametrelerinde yapılandırılabilir).
- Ters ara sunucu etkin.
- DNS hizmeti etkindir.
- Bronz dayanıklılık düzeyi (şablon parametrelerinde yapılandırılabilir).
- Silver güvenilirlik düzeyi (şablon parametrelerinde yapılandırılabilir).
- İstemci bağlantı uç noktası: 19000 (şablon parametrelerinde yapılandırılabilir).
- HTTP ağ geçidi uç noktası: 19080 (şablon parametrelerinde yapılandırılabilir).
Azure Load Balancer
Microsoft.Network/loadBalancers kaynağında bir yük dengeleyici yapılandırılır. Yoklamalar ve kurallar aşağıdaki bağlantı noktaları için ayarlanır:
- İstemci bağlantı uç noktası: 19000
- HTTP ağ geçidi uç noktası: 19080
- Uygulama bağlantı noktası: 80
- Uygulama bağlantı noktası: 443
- Service Fabric ters proxy’si: 19081
Başka uygulama bağlantı noktaları gerekiyorsa, Microsoft.Network/loadBalancers kaynağını ve Microsoft.Network/networkSecurityGroups kaynağını trafiğe izin verecek şekilde ayarlamanız gerekir.
Sanal ağ, alt ağ ve ağ güvenlik grubu
Sanal ağ, alt ağ ve ağ güvenlik grubunun adları şablon parametrelerinde bildirilir. 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ı: 172.16.0.0/20
- Service Fabric alt ağ adres alanı: 172.16.2.0/23
Microsoft.Network/networkSecurityGroups kaynağında aşağıdaki gelen trafik kuralları etkinleştirilir. Şablon değişkenlerini değiştirerek bağlantı noktası değerlerini değiştirebilirsiniz.
- ClientConnectionEndpoint (TCP): 19000
- HttpGatewayEndpoint (HTTP/TCP): 19080
- SMB: 445
- Internodecommunication: 1025, 1026, 1027
- Kısa ömürlü bağlantı noktası aralığı: 49152 - 65534 (en az 256 bağlantı noktası gerekir).
- Uygulamanın kullanımına yönelik bağlantı noktaları: 80 ve 443
- Uygulama bağlantı noktası aralığı: 49152 ile 65534 (hizmet-hizmet iletişimi için kullanılır). Yük dengeleyicide diğer bağlantı noktaları açılmaz).
- Diğer tüm bağlantı noktalarını engelleyin
Başka uygulama bağlantı noktaları gerekiyorsa, Microsoft.Network/loadBalancers kaynağını ve Microsoft.Network/networkSecurityGroups kaynağını trafiğe izin verecek şekilde ayarlamanız gerekir.
Windows Defender
Varsayılan olarak, Windows Defender virüsten koruma programı Windows Server 2016'da yüklü ve işlevseldir. Kullanıcı arabirimi varsayılan olarak bazı SKU'lara yüklenir, ancak gerekli değildir. Şablonda bildirilen her düğüm türü/VM ölçek kümesi için, Service Fabric dizinlerini ve işlemlerini dışlamak için Azure VM Kötü Amaçlı Yazılımdan Koruma uzantısı kullanılır:
{
"name": "[concat('VMIaaSAntimalware','_vmNodeType0Name')]",
"properties": {
"publisher": "Microsoft.Azure.Security",
"type": "IaaSAntimalware",
"typeHandlerVersion": "1.5",
"settings": {
"AntimalwareEnabled": "true",
"Exclusions": {
"Paths": "D:\\SvcFab;D:\\SvcFab\\Log;C:\\Program Files\\Microsoft Service Fabric",
"Processes": "Fabric.exe;FabricHost.exe;FabricInstallerService.exe;FabricSetup.exe;FabricDeployer.exe;ImageBuilder.exe;FabricGateway.exe;FabricDCA.exe;FabricFAS.exe;FabricUOS.exe;FabricRM.exe;FileStoreService.exe"
},
"RealtimeProtectionEnabled": "true",
"ScheduledScanSettings": {
"isEnabled": "true",
"scanType": "Quick",
"day": "7",
"time": "120"
}
},
"protectedSettings": null
}
}
Şablon parametrelerini ayarlama
azuredeploy.parameters.json parametre dosyası, kümenin ve ilişkili kaynakların dağıtılması için kullanılan birçok değeri bildirir. Dağıtımınız için değiştirebileceğiniz parametreler şunlardır:
Parametre | Örnek değer | Notlar |
---|---|---|
adminUserName | vmadmin | Küme VM’leri için yönetici kullanıcı adı. VM için kullanıcı adı gereksinimleri. |
adminPassword | Password#1234 | Küme VM’leri için yönetici parolası. VM için parola gereksinimleri. |
clusterName | mysfcluster123 | Kümenin adı. Yalnızca harf ve sayı içerebilir. Uzunluğu 3 ile 23 karakter arasında olmalıdır. |
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". |
Microsoft Entra istemci kimlik doğrulamayı ayarlama
Azure'da barındırılan bir genel ağda dağıtılan Service Fabric kümeleri için istemciden düğüme karşılıklı kimlik doğrulaması önerisi şöyledir:
- İstemci kimliği için Microsoft Entra Id kullanın.
- Sunucu kimliği ve HTTP iletişiminin TLS şifrelemesi için bir sertifika kullanın.
Bir Service Fabric kümesi için istemcilerin kimliğini doğrulamak için Microsoft Entra Kimliğini ayarlama işlemi, küme oluşturulmadan önce yapılmalıdır. Microsoft Entra ID, kuruluşların (kiracı olarak bilinir) uygulamalara kullanıcı erişimini yönetmesini sağlar.
Service Fabric kümesi, web tabanlı Service Fabric Explorer ve Visual Studio dahil olmak üzere yönetim işlevselliğine çeşitli giriş noktaları sunar. Sonuç olarak, kümeye erişimi denetlemek için iki Microsoft Entra uygulaması oluşturursunuz: bir web uygulaması ve bir yerel uygulama. Uygulamalar oluşturulduktan sonra kullanıcıları salt okunur ve yönetici rollerine atarsınız.
Not
Kümeyi oluşturmadan önce aşağıdaki adımları tamamlamanız gerekir. Betikler küme adlarını ve uç noktaları beklediğinden, değerlerin önceden oluşturduğunuz değerler değil planlanması gerekir.
Bu makalede, zaten bir kiracı oluşturduğunuz varsayılır. Henüz yapmadıysanız, Microsoft Entra kiracısı alma makalesini okuyarak başlayın.
Microsoft Entra Id'yi bir Service Fabric kümesiyle yapılandırma adımlarını basitleştirmek için bir Windows PowerShell betikleri kümesi oluşturduk. Betikleri bilgisayarınıza indirin.
Microsoft Entra uygulamaları oluşturma ve kullanıcıları rollere atama
Kümeye erişimi denetlemek için iki Microsoft Entra uygulaması oluşturun: bir web uygulaması ve bir yerel uygulama. Kümenizi temsil eden uygulamaları oluşturduktan sonra kullanıcılarınızı Service Fabric tarafından desteklenen rollere atayın: salt okunur ve yönetici.
komutunu çalıştırın SetupApplications.ps1
ve kiracı kimliğini, küme adını ve web uygulaması yanıt URL'sini parametre olarak sağlayın. Kullanıcılar için kullanıcı adlarını ve parolaları belirtin. Örneğin:
$Configobj = .\SetupApplications.ps1 -TenantId '<MyTenantID>' -ClusterName 'mysfcluster123' -WebApplicationReplyUrl 'https://mysfcluster123.eastus.cloudapp.azure.com:19080/Explorer/index.html' -AddResourceAccess
.\SetupUser.ps1 -ConfigObj $Configobj -UserName 'TestUser' -Password 'P@ssword!123'
.\SetupUser.ps1 -ConfigObj $Configobj -UserName 'TestAdmin' -Password 'P@ssword!123' -IsAdmin
Not
Ulusal bulutlar için (örneğin Azure Kamu, 21Vianet, Azure Germany tarafından sağlanan Microsoft Azure) parametresini -Location
belirtin.
TenantId veya dizin kimliğinizi Azure portalında bulabilirsiniz. Microsoft Entra ID>Özellikleri'ni seçin ve Dizin Kimliği değerini kopyalayın.
ClusterName , betik tarafından oluşturulan Microsoft Entra uygulamalarının ön ekini oluşturmak için kullanılır. Gerçek küme adıyla tam olarak eşleşmesi gerekmez. Yalnızca Microsoft Entra yapıtlarını kullanımdaki Service Fabric kümesine eşlemeyi kolaylaştırır.
WebApplicationReplyUrl , Microsoft Entra ID'nin oturum açma işlemini tamamladıktan sonra kullanıcılarınıza döndürdüğü varsayılan uç noktadır. Bu uç noktayı kümeniz için Service Fabric Explorer uç noktası olarak ayarlayın; varsayılan olarak şunlardır:
<https:// cluster_domain>:19080/Explorer
Microsoft Entra kiracısı için yönetici ayrıcalıklarına sahip bir hesapta oturum açmanız istenir. Oturum açtığınızda betik, Service Fabric kümenizi temsil etmek için web ve yerel uygulamalar oluşturur. Kiracının Azure portalındaki uygulamalarında iki yeni giriş görmeniz gerekir:
- ClusterName_Cluster
- ClusterName_Client
Betik, kümeyi oluştururken Resource Manager şablonunun gerektirdiği JSON dosyasını yazdırır, bu nedenle PowerShell penceresini açık tutmak iyi bir fikirdir.
"azureActiveDirectory": {
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
},
İstemci erişimi için Microsoft Entra Kimliğini kullanmak üzere Microsoft Entra yapılandırması ekleme
azuredeploy.json Microsoft.ServiceFabric/clusters bölümünde Microsoft Entra Id'yi yapılandırın. Kiracı kimliği, küme uygulama kimliği ve istemci uygulama kimliği için parametreler ekleyin.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
"contentVersion": "1.0.0.0",
"parameters": {
...
"aadTenantId": {
"type": "string",
"defaultValue": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"type": "string",
"defaultValue": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"type": "string",
"defaultValue": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}
},
...
{
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
...
"properties": {
...
"azureActiveDirectory": {
"tenantId": "[parameters('aadTenantId')]",
"clusterApplication": "[parameters('aadClusterApplicationId')]",
"clientApplication": "[parameters('aadClientApplicationId')]"
},
...
}
}
parametre değerlerini azuredeploy.parameters.json parametreler dosyasına ekleyin. Örneğin:
"aadTenantId": {
"value": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"value": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"value": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}
Kümede tanılama koleksiyonunu yapılandırma
Service Fabric kümesi çalıştırırken, günlükleri merkezi bir konumdaki tüm düğümlerden toplamak iyi bir fikirdir. Günlüklerin merkezi bir konumda olması, kümenizdeki sorunları veya bu kümede çalışan uygulama ve hizmetlerdeki sorunları analiz edip gidermenize yardımcı olur.
Günlükleri karşıya yüklemenin ve toplamanın bir yolu, günlükleri Azure Depolama'ya yükleyen ve günlükleri Azure Uygulaması lication Insights veya Event Hubs'a gönderme seçeneğine sahip olan Azure Tanılama (WAD) uzantısını kullanmaktır. Depolamadan olayları okumak ve Azure İzleyici günlükleri veya başka bir günlük ayrıştırma çözümü gibi bir analiz platformu ürününe yerleştirmek için bir dış işlem de kullanabilirsiniz.
Bu öğreticiyi izliyorsanız, tanılama koleksiyonu şablonda zaten yapılandırılmıştır.
Tanılama'nın dağıtılmadığı bir kümeniz varsa, küme şablonu aracılığıyla ekleyebilir veya güncelleştirebilirsiniz. Mevcut kümeyi oluşturmak veya şablonu portaldan indirmek için kullanılan Resource Manager şablonunu değiştirin. Aşağıdaki görevleri gerçekleştirerek template.json dosyasını değiştirin:
Şablondaki kaynaklar bölümüne yeni bir depolama kaynağı ekleyin:
"resources": [
...
{
"apiVersion": "2015-05-01-preview",
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
"location": "[parameters('computeLocation')]",
"sku": {
"accountType": "[parameters('applicationDiagnosticsStorageAccountType')]"
},
"tags": {
"resourceType": "Service Fabric",
"clusterName": "[parameters('clusterName')]"
}
},
...
]
Ardından, depolama hesabı adı için parametreler ekleyin ve şablonun parametreler bölümüne yazın. Yer tutucu metin depolama hesabı adını, istediğiniz depolama hesabının adıyla değiştirin.
"parameters": {
...
"applicationDiagnosticsStorageAccountType": {
"type": "string",
"allowedValues": [
"Standard_LRS",
"Standard_GRS"
],
"defaultValue": "Standard_LRS",
"metadata": {
"description": "Replication option for the application diagnostics storage account"
}
},
"applicationDiagnosticsStorageAccountName": {
"type": "string",
"defaultValue": "**STORAGE ACCOUNT NAME GOES HERE**",
"metadata": {
"description": "Name for the storage account that contains application diagnostics data from the cluster"
}
},
...
}
Ardından, kümedeki her Microsoft.Compute/virtualMachineScaleSets kaynağının VirtualMachineProfile özelliğinin extensions dizisine IaaSDiagnostics uzantısını ekleyin. Örnek şablonu kullanıyorsanız üç sanal makine ölçek kümesi vardır (kümedeki her düğüm türü için bir tane).
"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('vmNodeType1Name')]",
"properties": {
...
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat(parameters('vmNodeType0Name'),'_Microsoft.Insights.VMDiagnosticsSettings')]",
"properties": {
"type": "IaaSDiagnostics",
"autoUpgradeMinorVersion": true,
"protectedSettings": {
"storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
"storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
"storageAccountEndPoint": "https://core.windows.net/"
},
"publisher": "Microsoft.Azure.Diagnostics",
"settings": {
"WadCfg": {
"DiagnosticMonitorConfiguration": {
"overallQuotaInMB": "50000",
"EtwProviders": {
"EtwEventSourceProviderConfiguration": [
{
"provider": "Microsoft-ServiceFabric-Actors",
"scheduledTransferKeywordFilter": "1",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableActorEventTable"
}
},
{
"provider": "Microsoft-ServiceFabric-Services",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricReliableServiceEventTable"
}
}
],
"EtwManifestProviderConfiguration": [
{
"provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
"scheduledTransferLogLevelFilter": "Information",
"scheduledTransferKeywordFilter": "4611686018427387904",
"scheduledTransferPeriod": "PT5M",
"DefaultEvents": {
"eventDestination": "ServiceFabricSystemEventTable"
}
}
]
}
}
},
"StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
},
"typeHandlerVersion": "1.5"
}
}
...
]
}
}
}
EventStore hizmetini yapılandırma
EventStore hizmeti, Service Fabric'teki bir izleme seçeneğidir. EventStore, kümenizin veya iş yüklerinizin belirli bir noktadaki durumunu anlamak için bir yol sağlar. EventStore, kümeden olayları koruyan durum bilgisi olan bir Service Fabric hizmetidir. Olay Service Fabric Explorer, REST ve API'ler aracılığıyla kullanıma sunulur. EventStore, kümenizdeki herhangi bir varlıkta tanılama verilerini almak için kümeyi doğrudan sorgular ve aşağıdakilere yardımcı olmak için kullanılmalıdır:
- Geliştirme veya test sırasında ya da izleme işlem hattı kullanıyor olabileceğiniz sorunları tanılama
- Kümenizde gerçekleştirdiğiniz yönetim eylemlerinin doğru işlendiğini onaylayın
- Service Fabric'in belirli bir varlıkla nasıl etkileşime geçtiğini gösteren bir "anlık görüntü" alma
Kümenizde EventStore hizmetini etkinleştirmek için, Microsoft.ServiceFabric/clusters kaynağının fabricSettings özelliğine aşağıdakileri ekleyin:
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"properties": {
...
"fabricSettings": [
...
{
"name": "EventStoreService",
"parameters": [
{
"name": "TargetReplicaSetSize",
"value": "3"
},
{
"name": "MinReplicaSetSize",
"value": "1"
}
]
}
]
}
Küme için Azure İzleyici günlüklerini ayarlama
Azure İzleyici günlükleri, küme düzeyindeki olayları izleme önerimizdir. Azure İzleyici günlüklerini kümenizi izleyecek şekilde ayarlamak için küme düzeyindeki olayları görüntülemek için tanılamanın etkinleştirilmiş olması gerekir.
Çalışma alanının kümenizden gelen tanılama verilerine bağlanması gerekir. Bu günlük verileri applicationDiagnosticsStorageAccountName depolama hesabında, WADServiceFabric*EventTable, WADWindowsEventLogsTable ve WADETWEventTable tablolarında depolanır.
Azure Log Analytics çalışma alanını ekleyin ve çözümü çalışma alanına ekleyin:
"resources": [
...
{
"apiVersion": "2015-11-01-preview",
"location": "[parameters('omsRegion')]",
"name": "[parameters('omsWorkspacename')]",
"type": "Microsoft.OperationalInsights/workspaces",
"properties": {
"sku": {
"name": "Free"
}
},
"resources": [
{
"apiVersion": "2015-11-01-preview",
"name": "[concat(variables('applicationDiagnosticsStorageAccountName'),parameters('omsWorkspacename'))]",
"type": "storageinsightconfigs",
"dependsOn": [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]",
"[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]"
],
"properties": {
"containers": [],
"tables": [
"WADServiceFabric*EventTable",
"WADWindowsEventLogsTable",
"WADETWEventTable"
],
"storageAccount": {
"id": "[resourceId('Microsoft.Storage/storageaccounts/', variables('applicationDiagnosticsStorageAccountName'))]",
"key": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-06-15').key1]"
}
}
},
{
"apiVersion": "2015-11-01-preview",
"type": "datasources",
"name": "sampleWindowsPerfCounter",
"dependsOn": [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
],
"kind": "WindowsPerformanceCounter",
"properties": {
"objectName": "Memory",
"instanceName": "*",
"intervalSeconds": 10,
"counterName": "Available MBytes"
}
},
{
"apiVersion": "2015-11-01-preview",
"type": "datasources",
"name": "sampleWindowsPerfCounter2",
"dependsOn": [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
],
"kind": "WindowsPerformanceCounter",
"properties": {
"objectName": "Service Fabric Service",
"instanceName": "*",
"intervalSeconds": 10,
"counterName": "Average milliseconds per request"
}
}
]
},
{
"apiVersion": "2015-11-01-preview",
"location": "[parameters('omsRegion')]",
"name": "[variables('solution')]",
"type": "Microsoft.OperationsManagement/solutions",
"dependsOn": [
"[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
],
"properties": {
"workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename'))]"
},
"plan": {
"name": "[variables('solution')]",
"publisher": "Microsoft",
"product": "[Concat('OMSGallery/', variables('solutionName'))]",
"promotionCode": ""
}
}
]
Ardından parametre ekleyin
"parameters": {
...
"omsWorkspacename": {
"type": "string",
"defaultValue": "mysfomsworkspace",
"metadata": {
"description": "Name of your OMS Log Analytics Workspace"
}
},
"omsRegion": {
"type": "string",
"defaultValue": "West Europe",
"allowedValues": [
"West Europe",
"East US",
"Southeast Asia"
],
"metadata": {
"description": "Specify the Azure Region for your OMS workspace"
}
}
}
Ardından değişkenleri ekleyin:
"variables": {
...
"solution": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
"solutionName": "ServiceFabric"
}
Log Analytics aracı uzantısını kümedeki her sanal makine ölçek kümesine ekleyin ve aracıyı Log Analytics çalışma alanına bağlayın. Bu, kapsayıcılar, uygulamalar ve performans izleme hakkında tanılama verilerinin toplanmasına olanak tanır. Azure Resource Manager, bunu sanal makine ölçek kümesi kaynağına uzantı olarak ekleyerek kümeyi ölçeklendirirken bile her düğüme yüklenmesini sağlar.
"apiVersion": "2018-10-01",
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "[variables('vmNodeType1Name')]",
"properties": {
...
"virtualMachineProfile": {
"extensionProfile": {
"extensions": [
{
"name": "[concat(variables('vmNodeType0Name'),'OMS')]",
"properties": {
"publisher": "Microsoft.EnterpriseCloud.Monitoring",
"type": "MicrosoftMonitoringAgent",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"settings": {
"workspaceId": "[reference(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')), '2015-11-01-preview').customerId]"
},
"protectedSettings": {
"workspaceKey": "[listKeys(resourceId('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspacename')),'2015-11-01-preview').primarySharedKey]"
}
}
}
...
]
}
}
}
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ğ, alt ağ ve ağ güvenlik grubu 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 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ına geçirme, sertifika yönetimini basitleştirir. Kümeyi sertifika yönetimi için sertifika ortak adlarını kullanacak şekilde güncelleştirme hakkında bilgi edinmek için Bkz . Kümeyi sertifika ortak ad yönetimi olarak değiştirme.
Var olan bir sertifikayı kullanarak küme oluşturma
Aşağıdaki betik, Azure'da yeni küme dağıtmak için New-AzServiceFabricCluster cmdlet'ini ve bir şablonu kullanır. Cmdlet, Azure'da yeni bir anahtar kasası oluşturur ve sertifikanızı karşıya yükler.
# Variables.
$groupname = "sfclustertutorialgroup"
$clusterloc="southcentralus" # Must match the location parameter in the template
$templatepath="C:\temp\cluster"
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
$clustername = "mysfcluster123" # Must match the clustername parameter in the template
$vaultname = "clusterkeyvault123"
$vaultgroupname="clusterkeyvaultgroup123"
$subname="$clustername.$clusterloc.cloudapp.azure.com"
# Sign in to your Azure account and select your subscription
Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>
# Create a new resource group for your deployment, and give it a name and a location.
New-AzResourceGroup -Name $groupname -Location $clusterloc
# Create the Service Fabric cluster.
New-AzServiceFabricCluster -ResourceGroupName $groupname -TemplateFile "$templatepath\azuredeploy.json" `
-ParameterFile "$templatepath\azuredeploy.parameters.json" -CertificatePassword $certpwd `
-KeyVaultName $vaultname -KeyVaultResourceGroupName $vaultgroupname -CertificateFile $certpath
Yeni, otomatik olarak imzalanan bir sertifika kullanarak küme oluşturma
Aşağıdaki betik, Azure'da yeni küme dağıtmak için New-AzServiceFabricCluster cmdlet'ini ve bir şablonu kullanır. Cmdlet, 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.
# Variables.
$groupname = "sfclustertutorialgroup"
$clusterloc="southcentralus" # Must match the location parameter in the template
$templatepath="C:\temp\cluster"
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\"
$clustername = "mysfcluster123"
$vaultname = "clusterkeyvault123"
$vaultgroupname="clusterkeyvaultgroup123"
$subname="$clustername.$clusterloc.cloudapp.azure.com"
# Sign in to your Azure account and select your subscription
Connect-AzAccount
Get-AzSubscription
Set-AzContext -SubscriptionId <guid>
# Create a new resource group for your deployment, and give it a name and a location.
New-AzResourceGroup -Name $groupname -Location $clusterloc
# Create the Service Fabric cluster.
New-AzServiceFabricCluster -ResourceGroupName $groupname -TemplateFile "$templatepath\azuredeploy.json" `
-ParameterFile "$templatepath\azuredeploy.parameters.json" -CertificatePassword $certpwd `
-CertificateOutputFolder $certfolder -KeyVaultName $vaultname -KeyVaultResourceGroupName $vaultgroupname -CertificateSubjectName $subname
Güvenli kümeye bağlanma
Service Fabric SDK ile yüklenen Service Fabric PowerShell modülünü kullanarak kümeye bağlanın. İlk olarak sertifikayı bilgisayarınızda geçerli kullanıcının Kişisel (My) deposuna yükleyin. Aşağıdaki PowerShell komutunu çalıştırın:
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
-FilePath C:\mycertificates\mysfcluster20170531104310.pfx `
-Password $certpwd
Artık güvenli kümenize bağlanmaya hazırsınız.
Service Fabric PowerShell modülü, Service Fabric kümelerini, uygulamalarını ve hizmetlerini yönetmek için birçok cmdlet sağlar. Güvenli kümeye bağlanmak için Connect-ServiceFabricCluster cmdlet'ini kullanın. Sertifika SHA1 parmak izi ve bağlantı uç noktası ayrıntıları önceki adımda elde edilen çıktıdan bulunabilir.
Daha önce Microsoft Entra istemci kimlik doğrulamasını ayarladıysanız aşağıdaki komutu çalıştırın:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-AzureActiveDirectory `
-ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10
Microsoft Entra istemci kimlik doğrulamasını ayarlamadıysanız aşağıdaki komutu çalıştırın:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-FindType FindByThumbprint -FindValue C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-StoreLocation CurrentUser -StoreName My
Get-ServiceFabricClusterHealth cmdlet'ini kullanarak bağlanıp bağlanmadığınızı ve kümenin iyi durumda olup olmadığını denetleyin.
Get-ServiceFabricClusterHealth
Kaynakları temizleme
Bu öğretici serisindeki diğer makalelerde oluşturduğunuz küme kullanılır. Hemen bir sonraki makaleye geçmeyecekseniz ücret alınmaması için kümeyi silmeniz iyi olur.
Sonraki adımlar
Kümenizi ölçeklendirmeyi öğrenmek için aşağıdaki öğreticiye ilerleyin.
- PowerShell kullanarak Azure’da VNet oluşturma
- Anahtar kasası oluşturma ve karşıya sertifika yükleme
- Microsoft Entra kimlik doğrulamayı ayarlama
- Tanılama koleksiyonunu yapılandırma
- EventStore hizmetini ayarlama
- Azure İzleyici günlüklerini ayarlama
- Azure PowerShell’de güvenli bir Service Fabric kümesi oluşturma
- X.509 sertifikasıyla kümenin güvenliğini sağlama
- PowerShell kullanarak kümeye bağlanma
- Bir kümeyi kaldırma
Ardından, kümenizi izlemeyi öğrenmek için aşağıdaki öğreticiye ilerleyin.