Öğretici: Windows çalıştıran bir Service Fabric kümesini Azure sanal ağına dağıtma
Bu öğretici, bir dizinin birinci bölümüdür. Windows çalıştıran bir Azure Service Fabric kümesini PowerShell ve şablon kullanarak bir Azure sanal ağına ve ağ güvenlik grubuna dağıtmayı öğrenirsiniz. İşiniz bittiğinde, bulutta çalışan ve uygulama dağıtabileceğiniz bir kümeniz vardır. Azure CLı 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. Sınama amacıyla daha küçük bir küme oluşturmak istiyorsanız, bkz. test kümesi oluşturma.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- PowerShell kullanarak Azure’da VNet oluşturma
- Anahtar kasası oluşturma ve karşıya sertifika yükleme
- Azure Active Directory kimlik doğrulamasını ayarla
- Tanılama toplamayı yapılandır
- EventStore hizmetini ayarlama
- Azure Izleyici 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
- Bir 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
Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. 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 bir hesap oluşturun.
- SERVICE fabrıc SDK ve PowerShell modülünüyükler.
- Azure PowerShell'i yükler.
- Azure kümelerinintemel kavramlarını gözden geçirin.
- Üretim kümesi dağıtımını planlayın ve hazırlayın .
Aşağıdaki yordamlar yedi düğümlü Service Fabric kümesi oluşturur. Azure 'da bir Service Fabric kümesi çalıştırarak oluşan 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, bir sanal ağa ve bir ağ güvenlik grubuna yedi sanal makine ve üç düğümlü tür güvenli bir küme dağıtır. Diğer örnek şablonlar GitHub'da bulunabilir. azuredeploy.js , aşağıdakiler dahil olmak üzere birkaç 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 (şablon parametrelerinde yapılandırılabilir) beş düğüm ve diğer iki düğüm türünün her birindeki bir düğüm.
- İşletim sistemi: kapsayıcılar içeren Windows Server 2016 Datacenter (şablon parametrelerinde yapılandırılabilir).
- Sertifika güvenli (şablon parametrelerinde yapılandırılabilir).
- Ters ara sunucu etkin.
- DNS hizmeti etkinleştirildi.
- Bronz dayanıklılık düzeyi (şablon parametrelerinde yapılandırılabilir).
- Gümüş 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
Diğer uygulama bağlantı noktaları gerekliyse, içindeki trafiğe izin vermek için Microsoft. Network/loadBalancers kaynağını ve Microsoft. Network/networksecuritygroups kaynağını 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-65534 (hizmetten hizmete iletişim için kullanılır. Diğer bağlantı noktaları yük dengeleyicide açılmaz).
- Diğer tüm bağlantı noktalarını engelleyin
Diğer uygulama bağlantı noktaları gerekliyse, içindeki trafiğe izin vermek için Microsoft. Network/loadBalancers kaynağını ve Microsoft. Network/networksecuritygroups kaynağını ayarlamanız gerekir.
Windows Defender
Varsayılan olarak, Windows Defender virüsten koruma programı windows Server 2016 ' de yüklü ve çalışır. Kullanıcı arabirimi bazı SKU 'Larda varsayılan olarak yüklenir, ancak gerekli değildir. Şablonda belirtilen her düğüm türü/VM Ölçek kümesi için Azure VM kötü amaçlı yazılımdan koruma uzantısı , Service Fabric dizinlerini ve süreçlerini dışlamak için 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ştirme parametreleri aşağıda verilmiştir:
| 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. |
| location | southcentralus | 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". |
İstemci kimlik Azure Active Directory ayarlama
Azure Service Fabric barındırılan bir genel ağa dağıtılmış kümeler için, istemciden düğüme karşılıklı kimlik doğrulaması önerisi şu şekildedir:
- İstemci Azure Active Directory için kimlik doğrulamayı kullanın.
- Sunucu kimliği ve HTTP iletişimini TLS şifrelemesi için bir sertifika kullanın.
Bir Azure Active Directory için istemcilerin kimliğini doğrulamak için Service Fabric (Azure AD) ayarlamanın kümeyi oluşturmadan önce yapılması gerekir. Azure AD, kuruluşların (kiracı olarak bilinir) uygulamalara kullanıcı erişimini yönetmelerini sağlar.
Bir Service Fabric kümesi, yönetim işlevselliğine web tabanlı uygulama ve Service Fabric Explorer dahil olmak üzere Visual Studio. Sonuç olarak, kümeye erişimi kontrol etmek için iki Azure AD uygulaması oluşturabilirsiniz: bir web uygulaması ve bir yerel uygulama. Uygulamalar oluşturulduktan sonra kullanıcıları salt okunur ve yönetici rollerine atarsiniz.
Not
Kümeyi oluşturmadan önce aşağıdaki adımları tamamlamanız gerekir. Betikler küme adlarını ve uç noktaları beklediğinizden, değerlerin önceden oluşturduğunuz değerler değil, plan yapılması gerekir.
Bu makalede, zaten bir kiracı oluşturduğunuz kabul edilir. Henüz başlamadısanız başlangıç olarak Kiracıyı Azure Active Directory.
Azure AD'nin bir Service Fabric kümesiyle yapılandırılması adımlarını basitleştirmek için bir dizi Windows PowerShell oluşturduk. Betikleri bilgisayarınıza indirin.
Azure AD uygulamaları oluşturma ve kullanıcıları rollere atama
Kümeye erişimi denetlemeye yönelik iki Azure AD uygulaması oluşturun: bir web uygulaması ve bir yerel uygulama. Kümenizi temsil edecek uygulamaları oluşturduktan sonra, kullanıcılarınızı salt okunur ve yönetici Service Fabric rollere attayın.
çalıştırın SetupApplications.ps1 ve kiracı kimliğini, küme adını ve web uygulaması yanıt URL'sini parametre olarak belirtin. 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 (örneğin Azure Kamu, Azure Çin, Azure Almanya) parametresini -Location belirtin.
TenantId veya dizin kimliğinizi kiracının Azure portal. Özellikler Azure Active Directory > seçin ve Dizin Kimliği değerini kopyalayın.
ClusterName, betik tarafından oluşturulan Azure AD uygulamalarına ön ek olarak kullanılır. Tam olarak gerçek küme adıyla eşleşmesi gerek yok. Yalnızca Azure AD yapıtlarını kullanımda olan bir Service Fabric eşlemeyi kolaylaştırır.
WebApplicationReplyUrl, Azure AD'nin oturum açma tamamlanmasını tamamlayan kullanıcılarınıza geri döndüren varsayılan uç noktadır. Bu uç noktayı kümeniz için varsayılan Service Fabric Explorer uç nokta olarak ayarlayın:
https:// cluster_domain < > :19080/Explorer
Azure AD kiracısı için yönetici ayrıcalıklarına sahip bir hesapta oturum açmanız istenir. Oturum açma sonrasında betik, kümenizi temsil edecek web ve yerel Service Fabric oluşturur. kiracının uygulamalarında , Azure portaliki yeni giriş görüyor gerekir:
- ClusterName _ Küme
- ClusterName _ Istemci
Betik, kümeyi Resource Manager şablon için gereken JSON'u yazdırır, bu nedenle PowerShell penceresini açık tutmanız iyi bir fikirdir.
"azureActiveDirectory": {
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
},
İstemci erişimi için Azure AD'yi kullanmak üzere Azure AD yapılandırması ekleme
üzerinde azuredeploy.js Microsoft.ServiceFabric/clusters bölümünde Azure AD'yi yapılandırabilirsiniz. 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 parametre dosyasındakiazuredeploy.parameters.jsekleyin. Ö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
Bir kümeyi Service Fabric, günlükleri merkezi bir konumdaki tüm düğümlerden toplamak iyi bir fikirdir. Günlüklerin merkezi bir konumda olması, kümenizin sorunlarını veya bu kümede çalışan uygulama ve hizmetlerle ilgili sorunları analiz etmenize ve gidermenize yardımcı olur.
Günlükleri karşıya yüklemenin ve toplamanın bir yolu, günlükleri Azure Depolama'ya yüklayan Azure Tanılama (WAD) uzantısını kullanmak ve günlükleri Azure depolama alanına veya Application Insights'a Event Hubs. Ayrıca, olayları depolamadan okumak ve bunları günlükler veya başka bir günlük ayrıştırma çözümü gibi bir analiz platformu ürününe Azure İzleyici dış işlem kullanabilirsiniz.
Bu öğreticiyi takip ediyorsanız, tanılama koleksiyonu şablonunda zaten yapılandırılmıştır.
Tanılama dağıtılmış olmayan mevcut bir kümeniz varsa, küme şablonu aracılığıyla kümeyi ekleyebilir veya güncelleştirebilirsiniz. Mevcut Resource Manager oluşturmak veya portaldan şablonu indirmek için kullanılan uygulama şablonunu değiştirme. Aşağıdaki template.jsgerçekleştirerek dosyanın dosyada değişikliklerini yapın:
Şablonda 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 parametreleri ekleyin ve şablonun parameters bölümüne yazın. Buraya giden 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 IaaSDiagnostics uzantısını kümedeki her bir Microsoft.Compute/virtualMachineScaleSets kaynağının VirtualMachineProfile özelliğinin uzantı dizisine ekleyin. Örnek şablonu kullanıyorsanız,üç sanal makine ölçek kümesi (kümedeki her düğüm türü için bir tane) vardır.
"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, hizmette bir izleme Service Fabric. EventStore, kümenizin veya iş yüklerinin belirli bir noktadaki durumunu anlamak için bir yol sağlar. EventStore, kümeden olayları Service Fabric durum bilgi deposu hizmetidir. Olay, rest ve API'Service Fabric Explorer aracılığıyla ortaya çıkar. EventStore, kümenizin herhangi bir varlığında tanılama verilerini almak için kümeyi doğrudan sorgular ve aşağıdakiler için kullanılmalıdır:
- Geliştirme veya test aşamasında veya izleme işlem hattı kullanıyor olabileceğiniz yerde sorunları tanılama
- Kümeniz üzerinde gerçekleştirilmiş olan yönetim eylemlerinin doğru işlendiğinden emin olun
- Belirli bir varlıkla etkileşim Service Fabric "anlık görüntü" alma
Kümeniz üzerinde EventStore hizmetini etkinleştirmek için, Microsoft.ServiceFabric/clusters kaynağının fabricSettings özelliğine aşağıdakini 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 Azure İzleyici günlüklerini ayarlama
Azure İzleyici, küme düzeyindeki olayları izlemenizi sağlar. Kümenizi izlemek Azure İzleyici günlüklerini ayarlamak için, küme düzeyinde olayları görüntülemek için tanılamayı etkinleştirmiş olun.
Çalışma alanının kümeden gelen tanılama verilerine bağlı olması gerekir. Bu günlük verileri applicationDiagnosticsStorageAccountName depolama hesabında, WADServiceFabric*EventTable, WADWindowsEventLogsTable veTABTWEventTable 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"
}
Kümede her sanal makine ölçek kümesine Log Analytics aracısı uzantısını 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 verileri toplamaya olanak sağlar. Sanal makine ölçek kümesi kaynağına bir uzantı olarak ekleyerek Azure Resource Manager, kümeyi ölçeklendirse bile her düğüme yüklenmelerini 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.js şablonunda Resource Manager, sanal ağ, alt ağ ve ağ güvenlik grubu oluşturur ve bu Service Fabric. Ş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 yetkilisini 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 sertifikanın parmak izi aynı olabilir ve bu da sertifika yönetimini daha zor haletır. Dağıtılan bir kümenin sertifika parmak izinden sertifika ortak adlara geçiş yapmak, sertifika yönetimini kolaylaştırır. Kümeyi sertifika yönetimi için sertifika ortak adlarını kullanmak üzere güncelleştirme hakkında bilgi edinmek için Kümeyi sertifika ortak ad yönetimi olarak değiştirme makalesini okuyun.
Mevcut bir sertifikayı kullanarak küme oluşturma
Aşağıdaki betik, Azure'da yeni bir küme dağıtmak için New-AzServiceFabricCluster cmdlet'ini ve bir şablonu kullanır. cmdlet'i 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 bir küme dağıtmak için New-AzServiceFabricCluster cmdlet'ini ve bir şablonu kullanır. cmdlet'i 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 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ır oluruz.
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 Azure AD 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
Azure AD 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ğlı olup olmadığını ve kümenin iyi olup olmadığını kontrol edin.
Get-ServiceFabricClusterHealth
Kaynakları temizleme
Bu öğretici serisinin diğer makaleleri, oluşturduğunuz kümeyi kullanır. Hemen bir sonraki makaleye geçmıyorsanız ücret ödememek için kümeyi silmek iyi olabilir.
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
- Kurulum Azure Active Directory doğrulaması
- Tanılama koleksiyonunu yapılandırma
- EventStore hizmetini ayarlama
- Günlük Azure İzleyici 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 izleme hakkında bilgi edinmek için aşağıdaki öğreticiye ilerleyin.