Självstudie: Distribuera ett Service Fabric-kluster som kör Windows till ett virtuellt Azure-nätverk
Den här självstudien ingår i en serie. Du lär dig hur du distribuerar ett Azure Service Fabric-kluster som kör Windows i ett virtuellt Azure-nätverk och en nätverkssäkerhetsgrupp med hjälp av PowerShell och en mall. När du är klar har du ett kluster som körs i molnet som du kan distribuera program till. Information om hur du skapar ett Linux-kluster som använder Azure CLI finns i Skapa ett säkert Linux-kluster på Azure.
I den här självstudien beskrivs ett produktionsscenario. Om du vill skapa ett mindre kluster i testsyfte kan du gå till Skapa ett testkluster.
I den här guiden får du lära dig att:
- skapa ett VNET i Azure med PowerShell
- skapa ett nyckelvalv och ladda upp ett certifikat
- Konfigurera Azure Active Directory-autentisering
- Konfigurera diagnostiksamling
- Konfigurera EventStore-tjänsten
- Konfigurera Azure Monitor loggar
- skapa ett säkert Service Fabric-kluster i Azure med PowerShell
- skydda klustret med ett X.509-certifikat
- Ansluta till klustret med PowerShell
- Ta bort ett kluster
I den här självstudieserien får du lära du dig att:
- skapa ett säkert kluster i Azure
- Övervaka ett kluster
- Skala in eller ut ett kluster
- uppgradera körningen för ett kluster
- Ta bort ett kluster
Anteckning
I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Förutsättningar
Innan du börjar den här självstudien:
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Installera Service Fabric SDK och PowerShell-modulen.
- Installera Azure PowerShell.
- Gå igenom de viktigaste begreppen i Azure-kluster.
- Planera och förbereda för distribution av ett produktionskluster.
Följande procedurer skapar ett Service Fabric-kluster med sju noder. Använd Priskalkylatorn för Azure för att beräkna kostnaden för att köra Service Fabric kluster i Azure.
Ladda ned och titta närmare på mallen
Ladda ned följande Azure Resource Manager mallfiler:
Den här mallen distribuerar ett säkert kluster med sju virtuella datorer och tre nodtyper till ett virtuellt nätverk och en nätverkssäkerhetsgrupp. Andra exempelmallar finns på GitHub. Den azuredeploy.jspå distribuerar ett antal resurser, inklusive följande.
Service Fabric-kluster
I resursen Microsoft.ServiceFabric/kluster konfigureras ett Windows-kluster med följande egenskaper:
- Tre nodtyper.
- Fem noder i den primära nodtypen (kan konfigureras i mallparametrarna) och en nod i var och en av de andra två nodtyperna.
- Operativsystem: Windows Server 2016 Datacenter med containrar (kan konfigureras i mallparametrarna).
- Certifikat som skyddas (kan konfigureras i mallparametrarna).
- Omvänd proxy är aktiverat.
- DNS-tjänsten är aktiverad.
- Hållbarhetsnivå brons (kan konfigureras i mallparametrarna).
- Tillförlitlighetsnivå för Silver (kan konfigureras i mallparametrarna).
- Klientanslutningsslutpunkt: 19000 (kan konfigureras i mallparametrarna).
- HTTP-gatewayslutpunkt: 19080 (kan konfigureras i mallparametrarna).
Azure Load Balancer
I resursen Microsoft.Network/loadBalancers konfigureras en lastbalanserare. Avsökningar och regler konfigureras för följande portar:
- Klientanslutningsslutpunkt: 19000
- HTTP-gatewayslutpunkt: 19080
- Programport: 80
- Programport: 443
- omvänd proxy för Service Fabric: 19081
Om andra programportar behövs måste du justera resursen Microsoft.Network/loadBalancers och resursen Microsoft.Network/networkSecurityGroups för att tillåta trafiken.
Virtuellt nätverk, undernät och nätverkssäkerhetsgrupp
Namnen på det virtuella nätverket, undernätet och nätverkssäkerhetsgruppen deklareras i mallparametrarna. Adressutrymmen i det virtuella nätverket och undernätet deklareras också i mallparametrarna och konfigureras i resursen Microsoft.Network/virtualNetworks:
- Adressutrymme för virtuellt nätverk: 172.16.0.0/20
- Service Fabric-undernätets adressutrymme: 172.16.2.0/23
Följande regler för inkommande trafik är aktiverade i resursen Microsoft.Network/networkSecurityGroups. Du kan ändra portvärdena genom att ändra mallvariablerna.
- ClientConnectionEndpoint (TCP): 19000
- HttpGatewayEndpoint (HTTP/TCP): 19080
- SMB: 445
- Internodecommunication: 1025, 1026, 1027
- Tillfälliga portintervall: 49152 till 65534 (minst 256 portar krävs).
- Portar för programanvändning: 80 och 443
- Programportintervall: 49152 till 65534 (används för kommunikation mellan tjänster. Andra portar öppnas inte i lastbalanseraren).
- Blockera alla andra portar
Om andra programportar behövs måste du justera resursen Microsoft.Network/loadBalancers och resursen Microsoft.Network/networkSecurityGroups för att tillåta trafiken.
Windows Defender
Som standard är Windows Defender antivirusprogram installerat och fungerar på Windows Server 2016. Användargränssnittet installeras som standard på vissa SKU:er, men det krävs inte. För varje nodtyp/VM-skalningsuppsättning som deklareras i mallen används Azure VM Antimalware-tillägget för att utesluta Service Fabric-katalogerna och -processerna:
{
"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
}
}
Ställa in mallparametrar
Parameterfilen azuredeploy.parameters.json deklarerar många värden som används till att distribuera klustret och associerade resurser. Följande är parametrar som du kan ändra för distributionen:
| Parameter | Exempelvärde | Kommentarer |
|---|---|---|
| adminUserName | vmadmin | Administratörsnamn för virtuella datorer i klustret. Användarnamnskrav för virtuell dator. |
| adminPassword | Password#1234 | Administratörslösenord för virtuella datorer i klustret. Lösenordskrav för virtuell dator. |
| clusterName | mysfcluster123 | Namnet på klustret. Får endast innehålla bokstäver och siffror. Längden ska vara mellan 3 och 23 tecken. |
| location | USA, södra centrala | Klustrets placering. |
| certificateThumbprint | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i certifikatets SHA1-tumavtrycksvärde. Till exempel ”6190390162C988701DB5676EB81083EA608DCCF3”. |
|
| certificateUrlValue | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i certifikatets webbadress. Till exempel "https: / /mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
| sourceVaultValue | Värdet ska vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare har laddats upp till ett nyckelvalv fyller du i källans nyckelvärde. Till exempel ”/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT”. |
Konfigurera Azure Active Directory-klientautentisering
För Service Fabric-kluster som distribueras i ett offentligt nätverk som hanteras i Azure är rekommendationen för ömsesidig klient-till-nod-autentisering:
- Använd Azure Active Directory för klientidentitet.
- Använd ett certifikat för serveridentitet och TLS-kryptering för HTTP-kommunikation.
Du måste konfigurera Azure Active Directory (Azure AD) för att autentisera klienter Service Fabric ett kluster innan du skapar klustret. Med Azure AD kan organisationer (som kallas klientorganisationer) hantera användaråtkomst till program.
Service Fabric-kluster erbjuder flera startpunkter för dess hanteringsfunktioner, däribland den webbaserade Service Fabric Explorer och Visual Studio. Därför kan du skapa två Azure AD-program för att styra åtkomsten till klustret: ett webbprogram och ett internt program. När programmen har skapats tilldelar du användare till roller som skrivskyddad och administratör.
Anteckning
Du måste slutföra följande steg innan du skapar klustret. Eftersom skripten förväntar sig klusternamn och slutpunkter bör värdena vara planerade och inte värden som du redan har skapat.
I den här artikeln förutsätter vi att du redan har skapat en klientorganisation. Om du inte har gjort det börjar du med att läsa How to get an Azure Active Directory tenant (Skaffa en Azure Active Directory klient).
För att förenkla stegen för att konfigurera Azure AD Service Fabric ett kluster har vi skapat en uppsättning Windows PowerShell skript. Ladda ned skripten till datorn.
Skapa Azure AD-program och tilldela användare till roller
Skapa två Azure AD-program för att styra åtkomsten till klustret: ett webbprogram och ett internt program. När du har skapat programmen för att representera klustret tilldelar du användarna de roller som stöds av Service Fabric: skrivskyddad och administratör.
Kör SetupApplications.ps1 och ange klientorganisations-ID, klusternamn och svars-URL för webbprogram som parametrar. Ange användarnamn och lösenord för användarna. Ett exempel:
$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
Anteckning
För nationella moln (till exempel Azure Government, Azure Kina, Azure Tyskland) anger du -Location parametern .
TenantId eller katalog-ID finns i Azure-portalen. Välj Azure Active Directory > Egenskaper och kopiera värdet för Katalog-ID.
ClusterName (Klusternamn) används för att prefigera de AD-program som skapas av skriptet. Det behöver inte exakt matcha det faktiska klusternamnet. Det gör det bara enklare att mappa Azure AD-artefakter till Service Fabric som används.
WebApplicationReplyUrl är den standardslutpunkt som Azure AD returnerar till dina användare när de har slutfört inloggningen. Ange den här slutpunkten som Service Fabric Explorer-slutpunkt för ditt kluster, vilken som standard är:
https://<cluster_domain>:19080/Explorer
Du uppmanas att logga in på ett konto som har administratörsbehörighet för Azure AD-klientorganisationen. När du har loggat in skapar skriptet webbprogrammet och det interna programmet för att representera ditt Service Fabric-kluster. I klientorganisationens program i Azure Portalbör du se två nya poster:
- Klusternamn _ Kluster
- Klusternamn _ Klient
Skriptet skriver ut den JSON som krävs av Resource Manager mallen när du skapar klustret, så det är en bra idé att hålla PowerShell-fönstret öppet.
"azureActiveDirectory": {
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
},
Lägga till Azure AD-konfiguration för att använda Azure AD för klientåtkomst
I azuredeploy.json konfigurerar du Azure AD i avsnittet Microsoft.ServiceFabric/clusters. Lägg till parametrar för klientorganisations-ID, klusterprogram-ID och klientprogram-ID.
{
"$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')]"
},
...
}
}
Lägg till parametervärdena i parameterfilen azuredeploy.parameters.json. Ett exempel:
"aadTenantId": {
"value": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"value": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"value": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}
Konfigurera diagnostiksamling i klustret
När du kör ett Service Fabric är det en bra idé att samla in loggarna från alla noder på en central plats. Om du har loggarna på en central plats kan du analysera och felsöka problem i klustret eller problem i program och tjänster som körs i klustret.
Ett sätt att ladda upp och samla in loggar är att använda tillägget Azure Diagnostics (WAD), som laddar upp loggar till Azure Storage och även har möjlighet att skicka loggar till Azure Application Insights eller Event Hubs. Du kan också använda en extern process för att läsa händelser från lagringen och placera dem i en analysplattformsprodukt, till exempel Azure Monitor-loggar eller någon annan loggparsningslösning.
Om du följer den här självstudien har diagnostiksamlingen redan konfigurerats i mallen.
Om du har ett befintligt kluster som inte har diagnostik distribuerat kan du lägga till eller uppdatera det via klustermallen. Ändra Resource Manager som används för att skapa det befintliga klustret eller ladda ned mallen från portalen. Ändra template.jsfil genom att utföra följande uppgifter:
Lägg till en ny lagringsresurs i resursavsnittet i mallen:
"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')]"
}
},
...
]
Lägg sedan till parametrar för lagringskontots namn och typ i parameteravsnittet i mallen. Ersätt lagringskontots platshållartextnamn med namnet på det lagringskonto som du vill ha.
"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"
}
},
...
}
Lägg sedan till tillägget IaaSDiagnostics i tilläggsmatrisen för egenskapen VirtualMachineProfile för varje Microsoft.Compute/virtualMachineScaleSets-resurs i klustret. Om du använder exempelmallen finnsdet tre VM-skalningsuppsättningar (en för varje nodtyp i klustret).
"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"
}
}
...
]
}
}
}
Konfigurera EventStore-tjänsten
EventStore-tjänsten är ett övervakningsalternativ i Service Fabric. EventStore är ett sätt att förstå tillståndet för ditt kluster eller dina arbetsbelastningar vid en viss tidpunkt. EventStore är en tillståndsfull Service Fabric som underhåller händelser från klustret. Händelsen exponeras via Service Fabric Explorer, REST och API:er. EventStore frågar klustret direkt för att hämta diagnostikdata på en entitet i klustret och bör användas för att hjälpa till:
- Diagnostisera problem vid utveckling eller testning, eller var du kanske använder en övervakningspipeline
- Bekräfta att hanteringsåtgärder som du vidtar på klustret bearbetas korrekt
- Hämta en "ögonblicksbild" av hur Service Fabric interagerar med en viss entitet
Om du vill aktivera EventStore-tjänsten i klustret lägger du till följande i egenskapen fabricSettings för resursen Microsoft.ServiceFabric/clusters:
"apiVersion": "2018-02-01",
"type": "Microsoft.ServiceFabric/clusters",
"name": "[parameters('clusterName')]",
"properties": {
...
"fabricSettings": [
...
{
"name": "EventStoreService",
"parameters": [
{
"name": "TargetReplicaSetSize",
"value": "3"
},
{
"name": "MinReplicaSetSize",
"value": "1"
}
]
}
]
}
Konfigurera Azure Monitor för klustret
Azure Monitor är vår rekommendation att övervaka händelser på klusternivå. Om du vill Azure Monitor loggar för att övervaka klustret måste du ha diagnostik aktiverad för att visa händelser på klusternivå.
Arbetsytan måste vara ansluten till diagnostikdata som kommer från klustret. Dessa loggdata lagras i lagringskontot applicationDiagnosticsStorageAccountName i tabellerna WADServiceFabric*EventTable, WADWindowsEventLogsTable och WADETWEventTable.
Lägg till Azure Log Analytics-arbetsytan och lägg till lösningen på arbetsytan:
"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": ""
}
}
]
Lägg sedan till parametrar
"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"
}
}
}
Lägg sedan till variabler:
"variables": {
...
"solution": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
"solutionName": "ServiceFabric"
}
Lägg till Log Analytics-agenttillägget till varje VM-skalningsuppsättning i klustret och anslut agenten till Log Analytics-arbetsytan. På så sätt kan du samla in diagnostikdata om containrar, program och prestandaövervakning. Genom att lägga till den som ett tillägg till vm-skalningsuppsättningsresursen Azure Resource Manager ser du till att den installeras på varje nod, även vid skalning av klustret.
"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]"
}
}
}
...
]
}
}
}
Distribuera det virtuella nätverket och klustret
Konfigurera sedan nätverkstopologin och distribuera Service Fabric-klustret. Mallen azuredeploy.jspå Resource Manager skapar ett virtuellt nätverk, undernät och en nätverkssäkerhetsgrupp för Service Fabric. Mallen distribuerar också ett kluster med certifikatsäkerhet aktiverad. För produktionskluster använder du ett certifikat från en certifikatutfärdare som klustercertifikat. Ett självsignerat certifikat kan användas för att skydda testkluster.
Mallen i den här artikeln distribuerar ett kluster som använder certifikatets tumavtryck för att identifiera klustercertifikatet. Två certifikat kan inte ha samma tumavtryck, vilket gör certifikathantering svårare. Att växla ett distribuerat kluster från tumavtryck för certifikat till vanliga certifikatnamn förenklar certifikathanteringen. Information om hur du uppdaterar klustret för att använda vanliga certifikatnamn för certifikathantering finns i Ändra kluster till hantering av vanliga certifikatnamn.
Skapa ett kluster med hjälp av ett befintligt certifikat
Följande skript använder cmdleten New-AzServiceFabricCluster och en mall för att distribuera ett nytt kluster i Azure. Cmdleten skapar ett nytt nyckelvalv i Azure och laddar upp certifikatet.
# 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
Skapa ett kluster med hjälp av ett nytt, själv signerat certifikat
Följande skript använder cmdleten New-AzServiceFabricCluster och en mall för att distribuera ett nytt kluster i Azure. Cmdleten skapar ett nytt nyckelvalv i Azure, lägger till ett nytt själv signerat certifikat i nyckelvalvet och laddar ned certifikatfilen lokalt.
# 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
Ansluta till det skyddade klustret
Anslut till klustret med hjälp av Service Fabric PowerShell-modulen som installerats med Service Fabric SDK. Först installerar du certifikatet i det personliga arkivet för den aktuella användaren på datorn. Kör följande PowerShell-kommando:
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
-FilePath C:\mycertificates\mysfcluster20170531104310.pfx `
-Password $certpwd
Nu är du redo att ansluta till ditt säkra kluster.
PowerShell-modulen Service Fabric har många cmdletar för hantering av Service Fabric-kluster, program och tjänster. Använd cmdleten Connect-ServiceFabricCluster till att ansluta till det säkra klustret. Certifikatets SHA1-tumavtryck och information om slutpunkten för anslutning finns i utdata från föregående steg.
Om du tidigare har ställt in Azure AD-klientautentisering kör du följande kommando:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-AzureActiveDirectory `
-ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10
Om du inte konfigurerade Azure AD-klientautentisering kör du följande kommando:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-FindType FindByThumbprint -FindValue C4C1E541AD512B8065280292A8BA6079C3F26F10 `
-StoreLocation CurrentUser -StoreName My
Kontrollera att du är ansluten och att klustret är felfritt med hjälp av cmdleten Get-ServiceFabricClusterHealth.
Get-ServiceFabricClusterHealth
Rensa resurser
De andra artiklarna i den här självstudieserien använder det kluster som du har skapat. Om du inte genast fortsätter till nästa artikel kanske du vill ta bort klustret för att undvika kostnader.
Nästa steg
Gå vidare till följande självstudie om du vill lära dig hur du skalar klustret.
- skapa ett VNET i Azure med PowerShell
- skapa ett nyckelvalv och ladda upp ett certifikat
- Konfigurera Azure Active Directory-autentisering
- Konfigurera diagnostiksamling
- Konfigurera EventStore-tjänsten
- Konfigurera Azure Monitor loggar
- skapa ett säkert Service Fabric-kluster i Azure med PowerShell
- skydda klustret med ett X.509-certifikat
- Ansluta till klustret med PowerShell
- Ta bort ett kluster
Gå sedan vidare till följande självstudie för att lära dig hur du övervakar klustret.