Kurz: Nasazení clusteru Service Fabric s Windows do virtuální sítě Azure
Tento kurz je první částí série. Naučíte se nasadit cluster Azure Service Fabric s Windows do virtuální sítě Azure a skupiny zabezpečení sítě pomocí PowerShellu a šablony. Po dokončení budete mít cluster spuštěný v cloudu, do kterého můžete nasazovat aplikace. Informace o vytvoření clusteru s Linuxem, který používá Azure CLI, najdete v tématu Vytvoření zabezpečeného clusteru s Linuxem v Azure.
Tento kurz popisuje produkční scénář. Pokud chcete vytvořit menší cluster pro účely testování, přečtěte si téma Vytvoření testovacího clusteru.
V tomto kurzu se naučíte:
- Vytvoření virtuální sítě v Azure pomocí PowerShellu
- Vytvoření trezoru klíčů a nahrání certifikátu
- Nastavení ověřování Azure Active Directory
- Konfigurace shromažďování diagnostiky
- Nastavení služby EventStore
- Nastavení protokolů služby Azure Monitor
- Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
- Zabezpečit cluster pomocí certifikátu X.509
- Připojení ke clusteru pomocí prostředí PowerShell
- Odebrat cluster
V této sérii kurzů se naučíte:
- Vytvoření zabezpečeného clusteru v Azure
- Monitorování clusteru
- Horizontální snížení nebo navýšení kapacity clusteru
- Upgrade modulu runtime clusteru
- Odstranění clusteru
Poznámka
K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Požadavky
Než začnete s tímto kurzem:
- Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
- Nainstalujte sadu Service Fabric SDK a modul PowerShellu.
- Nainstalujte Azure PowerShell.
- Projděte si klíčové koncepty clusterů Azure.
- Naplánujte nasazení produkčního clusteru a připravte ho.
Následující postupy vytvoří cluster Service Fabric se sedmi uzly. Pomocí cenové kalkulačky Azure můžete vypočítat náklady vzniklé spuštěním clusteru Service Fabric v Azure.
Stažení a prozkoumání šablony
Stáhněte si následující soubory šablony Azure Resource Manager:
Tato šablona nasadí zabezpečený cluster sedmi virtuálních počítačů a tří typů uzlů do virtuální sítě a skupiny zabezpečení sítě. Další ukázkové šablony najdete na GitHubu. Azuredeploy.json nasadí řadu prostředků, včetně následujících.
Cluster Service Fabric
V prostředku Microsoft.ServiceFabric/clusters se konfiguruje cluster s Windows s těmito charakteristikami:
- Tři typy uzlů.
- Pět uzlů v primárním typu uzlu (konfigurovatelné v parametrech šablony) a jeden uzel v každém z ostatních dvou typů uzlů.
- Operační systém: Windows Server 2016 datacentra s kontejnery (konfigurovatelné v parametrech šablony).
- Zabezpečení certifikátem (konfigurovatelné v parametrech šablony)
- Reverzní proxy server je povolený.
- Služba DNS je povolená.
- Úroveň odolnosti bronzová (konfigurovatelná v parametrech šablony).
- Úroveň spolehlivosti Silver (konfigurovatelná v parametrech šablony).
- Koncový bod připojení klienta: 19000 (konfigurovatelné v parametrech šablony).
- Koncový bod brány HTTP: 19080 (lze konfigurovat v parametrech šablony).
Azure Load Balancer
V prostředku Microsoft.Network/loadBalancers je nakonfigurovaný nástroj pro vyrovnávání zatížení. Sondy a pravidla se nastavují pro následující porty:
- Koncový bod připojení klienta: 19000
- koncový bod brány HTTP: 19080
- Port aplikace: 80
- Port aplikace: 443
- reverzní proxy server Service Fabric: 19081
Pokud jsou potřeba další porty aplikace, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups tak, aby se provoz povolil.
Virtuální síť, podsíť a skupina zabezpečení sítě
Názvy virtuální sítě, podsítě a skupiny zabezpečení sítě jsou deklarované v parametrech šablony. Adresní prostory virtuální sítě a podsítě se taky deklarují v parametrech šablony a konfigurují v prostředku Microsoft.Network/virtualNetworks:
- Adresní prostor virtuální sítě: 172.16.0.0/20
- adresní prostor podsítě Service Fabric: 172.16.2.0/23
V prostředku Microsoft.Network/networkSecurityGroups jsou povolená následující pravidla pro příchozí provoz. Hodnoty portů můžete změnit změnou proměnných šablony.
- ClientConnectionEndpoint (TCP): 19000
- HttpGatewayEndpoint (HTTP/TCP): 19080
- SMB: 445
- Komunikace mezi uzly: 1025, 1026, 1027
- Rozsah dočasných portů: 49152 až 65534 (potřebujete minimálně 256 portů).
- Porty pro použití aplikací: 80 a 443
- Rozsah portů aplikace: 49152 až 65534 (používá se pro komunikaci mezi službami. Ostatní porty se v nástroji pro vyrovnávání zatížení neotevřou).
- Všechny ostatní porty jsou blokované
Pokud jsou potřeba další porty aplikace, budete muset upravit prostředek Microsoft.Network/loadBalancers a prostředek Microsoft.Network/networkSecurityGroups tak, aby se provoz povolil.
Windows Defender
Ve výchozím nastavení je na Windows Server 2016 nainstalovaný antivirový program Windows Defender, který je funkční. Uživatelské rozhraní se ve výchozím nastavení instaluje na některé skladové položky, ale není povinné. Pro každý typ uzlu nebo škálovací sadu virtuálních počítačů deklarovanou v šabloně se k vyloučení adresářů a procesů Service Fabric používá rozšíření Azure VM Antimalware :
{
"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
}
}
Nastavení parametrů šablony
Soubor s parametry azuredeploy.parameters.json deklaruje mnoho hodnot používaných pro nasazení clusteru a přidružených prostředků. Toto jsou parametry, které je potřeba upravit pro vaše nasazení:
Parametr | Příklad hodnoty | Poznámky |
---|---|---|
adminUserName | vmadmin | Uživatelské jméno správce pro virtuální počítače clusteru. Požadavky na uživatelské jméno pro virtuální počítač |
adminPassword | Password#1234 | Heslo správce pro virtuální počítače clusteru. Požadavky na heslo pro virtuální počítač |
clusterName | mysfcluster123 | Název clusteru. Může obsahovat jenom písmena a číslice. Může mít délku 3 až 23 znaků. |
location | southcentralus | Umístění clusteru. |
certificateThumbprint | Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná. Pokud chcete použít existující certifikát, který se dříve odeslal do trezoru klíčů, vyplňte hodnotu kryptografického otisku certifikátu SHA1. Příklad: „6190390162C988701DB5676EB81083EA608DCCF3“. |
|
certificateUrlValue | Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná. Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte URL certifikátu. Například "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
sourceVaultValue | Pokud vytváříte certifikát podepsaný svým držitelem nebo poskytujete soubor certifikátu, měla by být hodnota prázdná. Pokud chcete použít existující certifikát, který byl dříve odeslán do trezoru klíčů, vyplňte hodnotu zdrojového trezoru. Například: /subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT |
Nastavení ověřování klientů Azure Active Directory
Pro clustery Service Fabric nasazené ve veřejné síti hostované v Azure se pro vzájemné ověřování typu klient-uzel doporučuje:
- Pro identitu klienta použijte Azure Active Directory.
- Použijte certifikát pro identitu serveru a šifrování komunikace HTTP pomocí protokolu TLS.
Před vytvořením clusteru je nutné nastavit Azure Active Directory (Azure AD) pro ověřování klientů pro cluster Service Fabric. Azure AD umožňuje organizacím (označovaných jako tenanti) spravovat uživatelský přístup k aplikacím.
Cluster Service Fabric nabízí několik vstupních bodů ke svým funkcím správy, včetně webových Service Fabric Explorer a sady Visual Studio. V důsledku toho vytvoříte dvě Azure AD aplikace pro řízení přístupu ke clusteru: jednu webovou aplikaci a jednu nativní aplikaci. Po vytvoření aplikací přiřadíte uživatelům role jen pro čtení a správce.
Poznámka
Před vytvořením clusteru musíte provést následující kroky. Vzhledem k tomu, že skripty očekávají názvy clusterů a koncové body, měly by být hodnoty plánované, a ne hodnoty, které jste už vytvořili.
V tomto článku předpokládáme, že jste už vytvořili tenanta. Pokud jste to neudělali, začněte tím, že si přečtete , jak získat tenanta Azure Active Directory.
Abychom zjednodušili postup konfigurace Azure AD s clusterem Service Fabric, vytvořili jsme sadu Windows PowerShell skriptů. Stáhněte si skripty do počítače.
Vytváření aplikací Azure AD a přiřazení uživatelů k rolím
Vytvořte dvě Azure AD aplikace pro řízení přístupu ke clusteru: jednu webovou aplikaci a jednu nativní aplikaci. Po vytvoření aplikací, které budou představovat váš cluster, přiřaďte uživatelům role podporované Service Fabricem: jen pro čtení a správce.
Spusťte SetupApplications.ps1
a jako parametry zadejte ID tenanta, název clusteru a adresu URL odpovědi webové aplikace. Zadejte uživatelská jména a hesla pro uživatele. Příklad:
$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
Poznámka
Pro národní cloudy (například Azure Government, Azure China, Azure Germany) zadejte -Location
parametr.
Id tenanta (ID adresáře) najdete v Azure Portal. Vyberte Vlastnosti Azure Active Directory> a zkopírujte hodnotu ID adresáře.
ClusterName se používá k předponě Azure AD aplikací vytvořených skriptem. Nemusí přesně odpovídat skutečnému názvu clusteru. Pouze usnadňuje mapování artefaktů Azure AD na cluster Service Fabric, který se používá.
WebApplicationReplyUrl je výchozí koncový bod, který Azure AD vrátit uživatelům po dokončení přihlášení. Nastavte tento koncový bod jako koncový bod Service Fabric Explorer pro váš cluster, což ve výchozím nastavení je:
<https:// cluster_domain>:19080/Explorer
Zobrazí se výzva k přihlášení k účtu, který má oprávnění správce pro tenanta Azure AD. Po přihlášení skript vytvoří webové a nativní aplikace, které budou představovat váš cluster Service Fabric. V aplikacích tenanta v Azure Portal by se měly zobrazit dvě nové položky:
- Název clusteru_Cluster
- Název clusteru_Client
Skript při vytváření clusteru vytiskne JSON požadovaný šablonou Resource Manager, takže je vhodné nechat okno PowerShellu otevřené.
"azureActiveDirectory": {
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
},
Přidání konfigurace Azure AD pro použití Azure AD pro klientský přístup
V souboru azuredeploy.json nakonfigurujte Azure AD v části Microsoft.ServiceFabric/clusters. Přidejte parametry pro ID tenanta, ID aplikace clusteru a ID klientské aplikace.
{
"$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')]"
},
...
}
}
Přidejte hodnoty parametrů do souboru parametrů azuredeploy.parameters.json . Příklad:
"aadTenantId": {
"value": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"value": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"value": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}
Konfigurace shromažďování diagnostiky v clusteru
Pokud používáte cluster Service Fabric, je vhodné shromáždit protokoly ze všech uzlů v centrálním umístění. Když máte protokoly v centrálním umístění, pomůže vám to analyzovat a řešit problémy v clusteru nebo problémy v aplikacích a službách spuštěných v daném clusteru.
Jedním ze způsobů, jak nahrát a shromáždit protokoly, je použít rozšíření Azure Diagnostics (WAD), které nahrává protokoly do služby Azure Storage a má také možnost odesílat protokoly do Aplikace Azure Insights nebo Event Hubs. Můžete také použít externí proces ke čtení událostí z úložiště a jejich umístění do produktu analytické platformy, jako jsou protokoly Azure Monitoru nebo jiné řešení pro analýzu protokolů.
Pokud sledujete tento kurz, je v šabloně už nakonfigurovaná kolekce diagnostiky.
Pokud máte existující cluster, který nemá nasazenou diagnostiku, můžete ho přidat nebo aktualizovat prostřednictvím šablony clusteru. Upravte šablonu Resource Manager, která slouží k vytvoření existujícího clusteru, nebo si šablonu stáhněte z portálu. Upravte soubor template.json provedením následujících úloh:
Přidejte nový prostředek úložiště do oddílu resources v šabloně:
"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')]"
}
},
...
]
Dále přidejte parametry pro název a typ účtu úložiště do oddílu parameters šablony. Nahraďte zástupný text název účtu úložiště, který je sem, názvem účtu úložiště, který chcete.
"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"
}
},
...
}
Dále přidejte rozšíření IaaSDiagnostics do pole extensions vlastnosti VirtualMachineProfile každého prostředku Microsoft.Compute/virtualMachineScaleSets v clusteru. Pokud používáte ukázkovou šablonu, existují tři škálovací sady virtuálních počítačů (jedna pro každý typ uzlu v clusteru).
"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"
}
}
...
]
}
}
}
Konfigurace služby EventStore
Služba EventStore je možnost monitorování v Service Fabric. EventStore poskytuje způsob, jak porozumět stavu clusteru nebo úloh v daném okamžiku. EventStore je stavová služba Service Fabric, která udržuje události z clusteru. Událost se zveřejňují prostřednictvím Service Fabric Explorer, REST a rozhraní API. EventStore se dotazuje přímo na cluster, aby získal diagnostická data o libovolné entitě v clusteru, a měl by se použít k tomu, aby vám pomohl:
- Diagnostika problémů s vývojem nebo testováním nebo s místem, kde můžete používat kanál monitorování
- Ověřte, že se správně zpracovávají akce správy, které na clusteru provádíte.
- Získání snímku interakce Service Fabric s konkrétní entitou
Pokud chcete ve svém clusteru povolit službu EventStore, přidejte do vlastnosti fabricSettings prostředku Microsoft.ServiceFabric/clusters následující:
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"properties": {
...
"fabricSettings": [
...
{
"name": "EventStoreService",
"parameters": [
{
"name": "TargetReplicaSetSize",
"value": "3"
},
{
"name": "MinReplicaSetSize",
"value": "1"
}
]
}
]
}
Nastavení protokolů služby Azure Monitor pro cluster
Protokoly Azure Monitoru jsou naším doporučením monitorovat události na úrovni clusteru. Pokud chcete nastavit protokoly Azure Monitoru pro monitorování clusteru, musíte mít povolenou diagnostiku pro zobrazení událostí na úrovni clusteru.
Pracovní prostor musí být připojený k diagnostickým datům pocházejícím z vašeho clusteru. Tato data protokolu jsou uložená v účtu úložiště applicationDiagnosticsStorageAccountName v tabulkách WADServiceFabric*EventTable, WADWindowsEventLogsTable a WADETWEventTable.
Přidejte pracovní prostor Služby Azure Log Analytics a přidejte do pracovního prostoru řešení:
"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": ""
}
}
]
Dále přidejte parametry.
"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"
}
}
}
Dále přidejte proměnné:
"variables": {
...
"solution": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
"solutionName": "ServiceFabric"
}
Přidejte rozšíření agenta Log Analytics do každé škálovací sady virtuálních počítačů v clusteru a připojte agenta k pracovnímu prostoru služby Log Analytics. To umožňuje shromažďovat diagnostická data o kontejnerech, aplikacích a monitorování výkonu. Azure Resource Manager tím, že ho přidáte jako rozšíření k prostředku škálovací sady virtuálních počítačů, zajistí, že se nainstaluje na každý uzel, a to i při škálování clusteru.
"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]"
}
}
}
...
]
}
}
}
Nasazení virtuální sítě a clusteru
Dále nastavte topologii sítě a nasaďte cluster Service Fabric. Šablona Resource Manager azuredeploy.json vytvoří virtuální síť, podsíť a skupinu zabezpečení sítě pro Service Fabric. Šablona také nasadí cluster s povoleným zabezpečením pomocí certifikátu. Pro produkční clustery použijte certifikát od certifikační autority jako certifikát clusteru. K zabezpečení testovacích clusterů můžete použít certifikát podepsaný svým držitelem.
Šablona v tomto článku nasadí cluster, který používá kryptografický otisk certifikátu k identifikaci certifikátu clusteru. Žádné dva certifikáty nemohou mít stejný kryptografický otisk, což ztěžuje správu certifikátů. Přepnutí nasazeného clusteru z kryptografických otisků certifikátů na běžné názvy certifikátů zjednodušuje správu certifikátů. Informace o tom, jak aktualizovat cluster tak, aby používal běžné názvy certifikátů pro správu certifikátů, najdete v článku Změna běžné správy názvů certifikátů na cluster.
Vytvoření clusteru pomocí existujícího certifikátu
Následující skript používá rutinu New-AzServiceFabricCluster a šablonu k nasazení nového clusteru v Azure. Rutina vytvoří nový trezor klíčů v Azure a nahraje váš certifikát.
# 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
Vytvoření clusteru pomocí nového certifikátu podepsaného svým držitelem
Následující skript používá rutinu New-AzServiceFabricCluster a šablonu k nasazení nového clusteru v Azure. Rutina vytvoří v Azure nový trezor klíčů, přidá do trezoru klíčů nový certifikát podepsaný svým držitelem a stáhne soubor certifikátu místně.
# 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
Připojení k zabezpečenému clusteru
Připojte se ke clusteru pomocí modulu Service Fabric PowerShell nainstalovaného se sadou Service Fabric SDK. Nejprve nainstalujte certifikát do osobního úložiště (Moje) aktuálního uživatele na počítači. Spusťte následující příkaz PowerShellu:
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
-FilePath C:\mycertificates\mysfcluster20170531104310.pfx `
-Password $certpwd
Teď jste připraveni připojit se k zabezpečenému clusteru.
Modul PowerShellu pro Service Fabric poskytuje řadu rutin pro správu clusterů Service Fabric, aplikací a služeb. Pomocí rutiny Connect-ServiceFabricCluster se připojte k zabezpečenému clusteru. Podrobnosti o kryptografickém otisku certifikátu SHA1 a koncovém bodu připojení se nacházejí ve výstupu z předchozího kroku.
Pokud jste dříve nastavili ověřování klientů Azure AD, spusťte následující příkaz:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-AzureActiveDirectory `
-ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10
Pokud jste nenastavili ověřování klienta Azure AD, spusťte následující příkaz:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-FindType FindByThumbprint -FindValue C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-StoreLocation CurrentUser -StoreName My
Pomocí rutiny Get-ServiceFabricClusterHealth zkontrolujte, že jste připojení a že je cluster v pořádku.
Get-ServiceFabricClusterHealth
Vyčištění prostředků
Další články v této sérii kurzů používají cluster, který jste vytvořili. Pokud nechcete ihned pokračovat dalším článkem, můžete cluster odstranit, aby se vám neúčtovaly poplatky.
Další kroky
V následujícím kurzu se dozvíte, jak škálovat cluster.
- Vytvoření virtuální sítě v Azure pomocí PowerShellu
- Vytvoření trezoru klíčů a nahrání certifikátu
- Nastavení ověřování Azure Active Directory
- Konfigurace shromažďování diagnostiky
- Nastavení služby EventStore
- Nastavení protokolů služby Azure Monitor
- Vytvoření zabezpečeného clusteru Service Fabric v Azure PowerShellu
- Zabezpečit cluster pomocí certifikátu X.509
- Připojení ke clusteru pomocí prostředí PowerShell
- Odebrat cluster
V dalším kroku přejděte k následujícímu kurzu, kde se dozvíte, jak monitorovat cluster.