Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här handledningen är del ett av en serie. Du lär dig hur du distribuerar ett Azure Service Fabric-kluster som kör Windows till 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 i Azure.
I den här handledningen beskrivs ett produktionsscenario. Om du vill skapa ett mindre kluster i testsyfte kan du läsa Skapa ett testkluster.
I den här tutorialen lär du dig följande:
- Skapa ett virtuellt nätverk i Azure med Hjälp av PowerShell
- Skapa ett nyckelvalv och ladda upp ett certifikat
- Konfigurera Microsoft Entra-autentisering
- Konfigurera diagnostiksamling
- Konfigurera EventStore-tjänsten
- Konfigurera Azure Monitor-loggar
- Skapa ett säkert Service Fabric-kluster i Azure 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 upp eller ned ett kluster
- uppgradera drifttiden av ett kluster
- Ta bort ett kluster
Anmärkning
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i 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.
- Granska de viktigaste begreppen i Azure-kluster.
- Planera och förbered inför en utrullning av produktionskluster.
Följande procedurer skapar ett Service Fabric-kluster med sju noder. Använd Priskalkylatorn för Azure för att beräkna kostnader som uppstår vid körning av ett Service Fabric-kluster i Azure.
Ladda ned och utforska 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. azuredeploy.json distribuerar ett antal resurser, inklusive följande.
Service Fabric-kluster
I resursen Microsoft.ServiceFabric/clusters 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 två andra nodtyperna.
- OPERATIVSYSTEM: Windows Server 2016 Datacenter med containrar (kan konfigureras i mallparametrarna).
- Certifikatet är skyddat (kan konfigureras i mallparametrarna).
- Omvänd proxy är aktiverad.
- DNS-tjänsten är aktiverad.
- Hållbarhetsnivå för Brons (kan konfigureras i mallparametrarna).
- Tillförlitlighetsnivån för Silver (kan konfigureras i mallparametrarna).
- Slutpunkt för klientanslutning: 19000 (kan konfigureras i mallparametrarna).
- HTTP-gatewayslutpunkt: 19080 (kan konfigureras i mallparametrarna).
Azure Load Balancer (belastningsutjämnare)
I resursen Microsoft.Network/loadBalancers konfigureras en lastbalanserare. Avsökningar och regler konfigureras för följande portar:
- Slutpunkt för klientanslutning: 19000
- HTTP-gatewayslutpunkt: 19080
- Applikationsport: 80
- Applikationsport: 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 trafik.
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 för 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ätsadressutrymme: 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 (behöver minst 256 portar).
- Portar för programanvändning: 80 och 443
- Programportintervall: 49152 till 65534 (används för tjänst-till-tjänst-kommunikation. 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 trafik.
Windows Defender
Som standard installeras och fungerar Windows Defender-antivirusprogrammet på Windows Server 2016. Användargränssnittet installeras som standard på vissa SKU:er, men krävs inte. För varje nodtyp/VM-skalningsuppsättning som deklareras i mallen används Tillägget Mot skadlig kod för virtuella Azure-datorer för att undanta Service Fabric-kataloger och -processer:
{
"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äll in mallparametrar
Filen azuredeploy.parameters.json parametrar deklarerar många värden som används för att distribuera klustret och associerade resurser. Följande är parametrar som du kan ändra för distributionen:
| Parameter | Exempelvärde | Anteckningar |
|---|---|---|
| administratörsAnvändarnamn | vmadmin | Administratörsanvändarnamn för de virtuella klusterdatorerna. Användarnamnskrav för virtuell dator. |
| administratörslösenord | Lösenord#1234 | Administratörslösenord för de virtuella klusterdatorerna. Lösenordskrav för virtuell dator. |
| klusternamn | mysfcluster123 | Namnet på klustret. Kan endast innehålla bokstäver och siffror. Längden kan vara mellan 3 och 23 tecken. |
| läge | southcentralus | Klustrets placering. |
| certificateThumbprint | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i certifikatets SHA1-tumavtrycksvärde. Till exempel "AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00". |
|
| certificateUrlValue | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i certifikat-URL:en. Till exempel "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
| sourceVaultValue | Värdet bör vara tomt om du skapar ett självsignerat certifikat eller tillhandahåller en certifikatfil. Om du vill använda ett befintligt certifikat som tidigare laddats upp till ett nyckelvalv fyller du i källvalvets värde. Till exempel "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". |
Konfigurera Microsoft Entra-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 Microsoft Entra-ID för klientidentitet.
- Använd ett certifikat för serveridentitet och TLS-kryptering för HTTP-kommunikation.
Du måste konfigurera Microsoft Entra-ID för att autentisera klienter för ett Service Fabric-kluster innan klustret skapas. Med Microsoft Entra-ID kan organisationer (så kallade 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 skapar du två Microsoft Entra-program för att styra åtkomsten till klustret: ett webbprogram och ett internt program. När programmen har skapats tilldelar du användare läs-endast roller och administratörsroller.
Anmärkning
Du måste utföra följande steg innan du skapar klustret. Eftersom skripten förväntar sig klusternamn och slutpunkter bör värdena planeras och inte värden som du redan har skapat.
I den här artikeln antar vi att du redan har skapat en klientorganisation. Om du inte har gjort det, börja med att läsa Hur du får en Microsoft Entra-klientorganisation.
För att förenkla stegen för att konfigurera Microsoft Entra-ID med ett Service Fabric-kluster har vi skapat en uppsättning Windows PowerShell-skript. Ladda ned skripten till datorn.
Skapa Microsoft Entra-program och tilldela användare till roller
Skapa två Microsoft Entra-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 ska du tilldela dina användare de roller som stöds av Service Fabric: läsbehörighet och administratör.
Kör SetupApplications.ps1och ange klientorganisations-ID, klusternamn och svars-URL för webbprogram som parametrar. Ange användarnamn och lösenord för användarna. Till 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
Anmärkning
För nationella moln (till exempel Azure Government, Microsoft Azure som drivs av 21Vianet, Azure Germany) anger du parametern -Location .
Du hittar ditt TenantId eller katalog-ID i Azure-portalen. Välj Microsoft Entra ID>Egenskaper och kopiera värdet för Katalog-ID.
ClusterName används för att prefixa de Microsoft Entra-program som skapas av skriptet. Det behöver inte exakt matcha det faktiska klusternamnet. Det gör det bara enklare att mappa Microsoft Entra-artefakter till Service Fabric-klustret som används.
WebApplicationReplyUrl är standardslutpunkten som Microsoft Entra-ID:t returnerar till användarna när de har loggat in. Ange den här slutpunkten som Service Fabric Explorer-slutpunkt för klustret, vilket som standard är:
<https://cluster_domain>:19080/Explorer
Du uppmanas att logga in på ett konto som har administratörsbehörighet för Microsoft Entra-klientorganisationen. När du har loggat in skapar skriptet webb- och inbyggda program som representerar ditt Service Fabric-kluster. I hyrestagarens program i Azure-portalen bör du se två nya poster:
- ClusterName_Cluster
- ClusterName_Client
Skriptet skriver ut 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 Microsoft Entra-konfiguration för att använda Microsoft Entra-ID för klientåtkomst
I azuredeploy.jsonkonfigurerar du Microsoft Entra-ID i avsnittet Microsoft.ServiceFabric/clusters . Lägg till parametrar för hyresgäst-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 azuredeploy.parameters.jsonparameternfilen . Till 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-kluster ä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 de 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ändelserna från lagringen och placera dem i en analysplattformsprodukt, till exempel Azure Monitor-loggar eller en annan loggparsningslösning.
Om du följer den här handledningen är diagnostiksamlingen redan konfigurerad i mallen.
Om du har ett befintligt kluster som inte har distribuerat diagnostik kan du lägga till eller uppdatera det via klustermallen. Ändra Resource Manager-mallen som används för att skapa det befintliga klustret eller ladda ned mallen från portalen. Ändra filen template.json 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 skriv till parameteravsnittet i mallen. Ersätt platshållarnamnet för textlagringskontot här med namnet på det lagringskonto som du vill använda.
"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 finns det tre virtuella maskin-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 klustret eller arbetsbelastningarna vid en viss tidpunkt. EventStore är en tillståndskänslig Service Fabric-tjänst som lagrar 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å vilken entitet som helst i ditt kluster och bör användas för att:
- Diagnostisera problem med utveckling eller testning, eller där du kanske använder en övervakningspipeline
- Bekräfta att hanteringsåtgärder som du vidtar i 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-loggar för klustret
Azure Monitor-loggar är vår rekommendation att övervaka händelser på klusternivå. Om du vill konfigurera 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 till 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 ser Azure Resource Manager till att den installeras på varje nod, även när klustret skalas.
"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. Mallenazuredeploy.json 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 aktiverat. 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. Inga två certifikat kan ha samma tumavtryck, vilket gör certifikathanteringen svårare. Om du byter ett distribuerat kluster från tumavtryck för certifikat till vanliga certifikatnamn förenklas certifikathanteringen. Om du vill lära dig hur du uppdaterar klustret så att det använder vanliga certifikatnamn för certifikathantering läser du Ändra kluster till certifikatets vanliga namnhantering.
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 ditt certifikat.
# 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älvsignerat 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älvsignerat 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 säkra klustret
Anslut till klustret med hjälp av Service Fabric PowerShell-modulen som är installerad med Service Fabric SDK. Installera först certifikatet i den Personliga (Min) butiken 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.
Service Fabric PowerShell-modulen innehåller många cmdletar för hantering av Service Fabric-kluster, program och tjänster. Använd cmdleten Connect-ServiceFabricCluster för att ansluta till det säkra klustret. Certifikatets SHA1-tumavtryck och information om anslutningsslutpunkten finns i utdata från föregående steg.
Om du tidigare har konfigurerat Microsoft Entra-klientautentisering kör du följande kommando:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-AzureActiveDirectory `
-ServerCertThumbprint BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11
Om du inte har konfigurerat Microsoft Entra-klientautentisering kör du följande kommando:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11 `
-FindType FindByThumbprint -FindValue BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11 `
-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 klustret som du har skapat. Om du inte omedelbart går vidare till nästa artikel kanske du vill ta bort klustret för att undvika att debiteras.
Nästa steg
Gå vidare till följande handledning för att lära dig hur du skalar ditt kluster.
- Skapa ett virtuellt nätverk i Azure med Hjälp av PowerShell
- Skapa ett nyckelvalv och ladda upp ett certifikat
- Konfigurera Microsoft Entra-autentisering
- Konfigurera diagnostiksamling
- Konfigurera EventStore-tjänsten
- Konfigurera Azure Monitor-loggar
- Skapa ett säkert Service Fabric-kluster i Azure PowerShell
- Skydda klustret med ett X.509-certifikat
- Ansluta till klustret med PowerShell
- Ta bort ett kluster
Gå sedan vidare till nästa handledning för att lära dig hur du kan övervaka din kluster.