Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze zelfstudie is deel één van een serie. U leert hoe u een Azure Service Fabric-cluster met Windows implementeert in een virtueel Azure-netwerk en een netwerkbeveiligingsgroep met behulp van PowerShell en een sjabloon. Wanneer u klaar bent, hebt u een cluster dat wordt uitgevoerd in de cloud waarin u toepassingen kunt implementeren. Zie Een beveiligd Linux-cluster maken in Azure om een Linux-cluster te maken dat gebruikmaakt van de Azure CLI.
In deze handleiding wordt een productiescenario beschreven. Zie Een testcluster maken als u een kleiner cluster wilt maken voor testdoeleinden.
In deze zelfstudie leert u het volgende:
- Een VNET maken in Azure met behulp van PowerShell
- Een sleutelkluis maken en een certificaat uploaden
- Microsoft Entra-verificatie instellen
- Diagnostische verzameling configureren
- De EventStore-service instellen
- Azure Monitor-logboeken instellen
- Een beveiligd Service Fabric-cluster maken in Azure PowerShell
- Het cluster beveiligen met een X.509-certificaat
- Verbinding maken met het cluster via PowerShell
- Een cluster verwijderen
In deze zelfstudiecursus leer je hoe je:
- Een beveiligd cluster maken in Azure
- Een cluster bewaken
- Een cluster in- of uitschalen
- De runtime van een cluster upgraden
- Een cluster verwijderen
Opmerking
U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereiste voorwaarden
Voor u met deze zelfstudie begint:
- Als u nog geen Azure-abonnement hebt, maakt u een gratis account.
- Installeer de Service Fabric SDK en PowerShell-module.
- Installeer Azure PowerShell.
- Bekijk de belangrijkste concepten van Azure-clusters.
- Plan en bereid u voor op een productieclusterimplementatie.
Met de volgende procedures maakt u een Service Fabric-cluster met zeven knooppunten. Gebruik de Azure-prijscalculator om de kosten te berekenen die worden gemaakt door een Service Fabric-cluster uit te voeren in Azure.
De sjabloon downloaden en verkennen
Download de volgende Azure Resource Manager-sjabloonbestanden:
Met deze sjabloon wordt een beveiligd cluster van zeven virtuele machines en drie knooppunttypen geïmplementeerd in een virtueel netwerk en een netwerkbeveiligingsgroep. Andere voorbeeldsjablonen vindt u op GitHub. De azuredeploy.json implementeert een aantal resources, waaronder de volgende.
Service Fabric-cluster
In de resource Microsoft.ServiceFabric/clusters wordt een Windows-cluster geconfigureerd met de volgende kenmerken:
- Drie knooppunttypen.
- Vijf knooppunten in het primaire knooppunttype (configureerbaar in de sjabloonparameters) en één knooppunt in elk van de andere twee knooppunttypen.
- Besturingssysteem: Windows Server 2016 Datacenter met containers (configureerbaar in de sjabloonparameters).
- Certificaat beveiligd (configureerbaar in de sjabloonparameters).
- Omgekeerde proxy is ingeschakeld.
- DE DNS-service is ingeschakeld.
- Duurzaamheidsniveau Brons (configureerbaar in de sjabloonparameters).
- Betrouwbaarheidsniveau van Silver (configureerbaar in de sjabloonparameters).
- Eindpunt voor clientverbinding: 19000 (configureerbaar in de sjabloonparameters).
- HTTP-gatewayeindpunt: 19080 (configureerbaar in de sjabloonparameters).
Azure Load Balancer
In de resource Microsoft.Network/loadBalancers is een load balancer geconfigureerd. Tests en regels zijn ingesteld voor de volgende poorten:
- Eindpunt van clientverbinding: 19000
- HTTP-gateway-eindpunt: 19080
- Toepassingspoort: 80
- Toepassingspoort: 443
- Service Fabric-omgekeerde proxy: 19081
Als er andere toepassingspoorten nodig zijn, moet u de resource Microsoft.Network/loadBalancers en de resource Microsoft.Network/networkSecurityGroups aanpassen om het verkeer toe te laten.
Virtueel netwerk, subnet en netwerkbeveiligingsgroep
De namen van het virtuele netwerk, subnet en netwerkbeveiligingsgroep worden gedeclareerd in de sjabloonparameters. Adresruimten van het virtuele netwerk en subnet worden ook gedeclareerd in de sjabloonparameters en geconfigureerd in de Resource Microsoft.Network/virtualNetworks :
- Adresruimte van virtueel netwerk: 172.16.0.0/20
- Service Fabric-subnetadresruimte: 172.16.2.0/23
De volgende regels voor binnenkomend verkeer zijn ingeschakeld in de resource Microsoft.Network/networkSecurityGroups . U kunt de poortwaarden wijzigen door de sjabloonvariabelen te wijzigen.
- ClientConnectionEndpoint (TCP): 19000
- HttpGatewayEndpoint (HTTP/TCP): 19080
- SMB: 445
- Internodecommunicatie: 1025, 1026, 1027
- Tijdelijke poortbereik: 49152 tot 65534 (minimaal 256 poorten nodig).
- Poorten voor toepassingsgebruik: 80 en 443
- Bereik van toepassingspoort: 49152 tot 65534 (gebruikt voor service-naar-servicecommunicatie. Andere poorten worden niet geopend op de load balancer).
- Alle andere poorten blokkeren
Als er andere toepassingspoorten nodig zijn, moet u de resource Microsoft.Network/loadBalancers en de resource Microsoft.Network/networkSecurityGroups aanpassen om het verkeer toe te laten.
Windows Defender
Het Windows Defender-antivirusprogramma is standaard geïnstalleerd en functioneel op Windows Server 2016. De gebruikersinterface is standaard geïnstalleerd op sommige SKU's, maar is niet vereist. Voor elk knooppunttype/VM-schaalset dat in de sjabloon is gedeclareerd, wordt de Azure VM Antimalware-extensie gebruikt om de Service Fabric-mappen en -processen uit te sluiten:
{
"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
}
}
Sjabloonparameters instellen
Het bestandazuredeploy.parameters.json parameters declareert veel waarden die worden gebruikt voor het implementeren van het cluster en de bijbehorende resources. Hier volgen parameters die u voor uw implementatie wilt wijzigen:
| Parameter | Voorbeeldwaarde | Notes |
|---|---|---|
| adminGebruikersnaam | vmadmin | Gebruikersnaam van beheerder voor de cluster-VM's. Gebruikersnaamvereisten voor VM. |
| beheerderswachtwoord | Wachtwoord#1234 | Beheerderswachtwoord voor de cluster-VM's. Wachtwoordvereisten voor VM. |
| clusterName | mysfcluster123 | Naam van het cluster. Mag alleen letters en cijfers bevatten. De lengte mag tussen 3 en 23 tekens lang zijn. |
| locatie | southcentralus | De locatie van het cluster. |
| certificateThumbprint | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat eerder is geüpload naar een sleutelkluis, vult u de sha1-vingerafdrukwaarde van het certificaat in. Bijvoorbeeld 'AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00'. |
|
| certificateUrlValue | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat eerder is geüpload naar een sleutelkluis, vult u de certificaat-URL in. Bijvoorbeeld'https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346". |
|
| sourceVaultValue | De waarde moet leeg zijn als u een zelfondertekend certificaat maakt of een certificaatbestand opgeeft. Als u een bestaand certificaat wilt gebruiken dat eerder is geüpload naar een sleutelkluis, vult u de waarde van de bronkluis in. Bijvoorbeeld: "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". |
Microsoft Entra-cliëntauthenticatie instellen
Voor Service Fabric-clusters die zijn geïmplementeerd in een openbaar netwerk dat wordt gehost in Azure, is de aanbeveling voor wederzijdse verificatie tussen clients:
- Gebruik Microsoft Entra-id voor clientidentiteit.
- Gebruik een certificaat voor serveridentiteit en TLS-versleuteling van HTTP-communicatie.
Het instellen van Microsoft Entra-id voor het verifiëren van clients voor een Service Fabric-cluster moet worden uitgevoerd voordat u het cluster maakt. Met Microsoft Entra ID kunnen organisaties (ook wel tenants genoemd) gebruikerstoegang tot toepassingen beheren.
Een Service Fabric-cluster biedt verschillende toegangspunten bij de management-functionaliteit, met inbegrip van de webconsoles Service Fabric Explorer en Visual Studio. Als gevolg hiervan maakt u twee Microsoft Entra-toepassingen om de toegang tot het cluster te beheren: één webtoepassing en één systeemeigen toepassing. Nadat de toepassingen zijn gemaakt, wijst u gebruikers toe aan alleen-lezen- en beheerdersrollen.
Opmerking
U moet de volgende stappen uitvoeren voordat u het cluster maakt. Omdat de scripts clusternamen en eindpunten verwachten, moeten de waarden worden gepland en niet de waarden die u al hebt gemaakt.
In dit artikel gaan we ervan uit dat u al een tenant heeft aangemaakt. Als u dat nog niet hebt gedaan, leest u eerst hoe u een Microsoft Entra-tenant krijgt.
Om de stappen voor het configureren van Microsoft Entra-id met een Service Fabric-cluster te vereenvoudigen, hebben we een set Windows PowerShell-scripts gemaakt. Download de scripts naar uw computer.
Microsoft Entra-toepassingen maken en gebruikers toewijzen aan rollen
Maak twee Microsoft Entra-toepassingen om de toegang tot het cluster te beheren: één webtoepassing en één systeemeigen toepassing. Nadat u de toepassingen voor uw cluster hebt gemaakt, wijst u uw gebruikers toe aan de rollen die door Service Fabric worden ondersteund: alleen-lezen en beheerder.
Voer SetupApplications.ps1 uit en geef de tenant ID, clusternaam en de antwoord-URL van de webapplicatie op als parameters. Geef gebruikersnamen en wachtwoorden op voor de gebruikers. Voorbeeld:
$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
Opmerking
Geef voor nationale clouds (bijvoorbeeld Azure Government, Microsoft Azure beheerd door 21Vianet, Azure Duitsland) de -Location parameter op.
U vindt uw TenantId of directory-ID in Azure portal. Selecteer Microsoft Entra ID> en kopieer de Directory-id waarde.
ClusterName wordt gebruikt voor het voorvoegsel van de Microsoft Entra-toepassingen die door het script worden gemaakt. Deze hoeft niet exact overeen te komen met de werkelijke clusternaam. Het maakt het alleen eenvoudiger om Microsoft Entra-artefacten toe te wijzen aan het Service Fabric-cluster dat wordt gebruikt.
WebApplicationReplyUrl is het standaardeindpunt dat microsoft Entra-id naar uw gebruikers retourneert nadat ze klaar zijn met aanmelden. Stel dit eindpunt in als het Service Fabric Explorer-eindpunt voor uw cluster. Dit is standaard:
<https:// cluster_domain>:19080/Explorer
U wordt gevraagd u aan te melden bij een account met beheerdersbevoegdheden voor de Microsoft Entra-tenant. Nadat u zich hebt aangemeld, worden met het script de web- en systeemeigen toepassingen gemaakt die uw Service Fabric-cluster vertegenwoordigen. In de toepassingen van de tenant in Azure Portal ziet u twee nieuwe vermeldingen:
- ClusterName_Cluster
- ClusterName_Client
Het script drukt de JSON af die is vereist voor de Resource Manager-sjabloon wanneer u het cluster maakt, dus het is een goed idee om het PowerShell-venster open te houden.
"azureActiveDirectory": {
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
},
Microsoft Entra-configuratie toevoegen voor het gebruik van Microsoft Entra-id voor clienttoegang
Configureer in het azuredeploy.jsonde Microsoft Entra-id in de sectie Microsoft.ServiceFabric/clusters . Voeg parameters toe voor de tenant-id, de clustertoepassings-id en de clienttoepassings-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')]"
},
...
}
}
Voeg de parameterwaarden toe in het parameterbestandazuredeploy.parameters.json . Voorbeeld:
"aadTenantId": {
"value": "0e3d2646-78b3-4711-b8be-74a381d9890c"
},
"aadClusterApplicationId": {
"value": "cb147d34-b0b9-4e77-81d6-420fef0c4180"
},
"aadClientApplicationId": {
"value": "7a8f3b37-cc40-45cc-9b8f-57b8919ea461"
}
Diagnostische verzameling configureren in het cluster
Wanneer u een Service Fabric-cluster uitvoert, is het een goed idee om de logboeken van alle knooppunten op een centrale locatie te verzamelen. Met de logboeken op een centrale locatie kunt u problemen in uw cluster analyseren en oplossen, of problemen in de toepassingen en services die in dat cluster worden uitgevoerd.
Een van de manieren om logboeken te uploaden en te verzamelen, is door de WAD-extensie (Azure Diagnostics) te gebruiken, die logboeken uploadt naar Azure Storage en ook de mogelijkheid heeft om logboeken te verzenden naar Azure Application Insights of Event Hubs. U kunt ook een extern proces gebruiken om de gebeurtenissen uit de opslag te lezen en in een analyseplatformproduct te plaatsen, zoals Azure Monitor-logboeken of een andere oplossing voor het parseren van logboeken.
Als u deze handleiding volgt, is diagnostische gegevensverzameling al geconfigureerd in de sjabloon.
Als u een bestaand cluster hebt waarvoor geen diagnostische gegevens zijn geïmplementeerd, kunt u het toevoegen of bijwerken via de clustersjabloon. Wijzig de Resource Manager-sjabloon die wordt gebruikt om het bestaande cluster te maken of download de sjabloon vanuit de portal. Wijzig het bestand template.json door de volgende taken uit te voeren:
Voeg een nieuwe opslagresource toe aan de sectie Resources in de sjabloon:
"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')]"
}
},
...
]
Voeg vervolgens parameters toe voor de naam en het type van het opslagaccount aan de parametersectie van de sjabloon. Vervang de tijdelijke aanduiding voor de naam van het opslagaccount hier door de naam van het gewenste opslagaccount.
"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"
}
},
...
}
Voeg vervolgens de IaaSDiagnostics-extensie toe aan de uitbreidingsmatrix van de eigenschap VirtualMachineProfile van elke Microsoft.Compute/virtualMachineScaleSets-resource in het cluster. Als u de voorbeeldsjabloon gebruikt, zijn er drie virtuele-machineschaalsets (één voor elk knooppunttype in het cluster).
"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"
}
}
...
]
}
}
}
De EventStore-service configureren
De EventStore-service is een bewakingsoptie in Service Fabric. EventStore biedt een manier om inzicht te krijgen in de status van uw cluster of workloads op een bepaald moment. De EventStore is een stateful Service Fabric-service die gebeurtenissen van het cluster onderhoudt. De gebeurtenis wordt weergegeven via de Service Fabric Explorer, REST en API's. EventStore voert rechtstreeks een query uit op het cluster om diagnostische gegevens op te halen voor elke entiteit in uw cluster en moet worden gebruikt om u te helpen:
- Problemen bij het ontwikkelen of testen vaststellen, of waar u mogelijk een bewakingspijplijn gebruikt
- Controleer of beheeracties die u uitvoert op uw cluster correct worden verwerkt
- Een momentopname ophalen van de interactie tussen Service Fabric en een bepaalde entiteit
Als u de EventStore-service in uw cluster wilt inschakelen, voegt u het volgende toe aan de eigenschap fabricSettings van de resource 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"
}
]
}
]
}
Azure Monitor-logboeken instellen voor het cluster
Azure Monitor-logboeken is onze aanbeveling om gebeurtenissen op clusterniveau te bewaken. Als u Azure Monitor-logboeken wilt instellen om uw cluster te bewaken, moet u diagnostische gegevens hebben ingeschakeld om gebeurtenissen op clusterniveau weer te geven.
De werkruimte moet zijn verbonden met de diagnostische gegevens die afkomstig zijn van uw cluster. Deze logboekgegevens worden opgeslagen in het opslagaccount applicationDiagnosticsStorageAccountName , in de tabellen WADServiceFabric*EventTable, WADWindowsEventLogsTable en WADETWEventTable.
Voeg de Azure Log Analytics-werkruimte toe en voeg de oplossing toe aan de werkruimte:
"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": ""
}
}
]
Voeg vervolgens parameters toe
"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"
}
}
}
Voeg vervolgens variabelen toe:
"variables": {
...
"solution": "[Concat('ServiceFabric', '(', parameters('omsWorkspacename'), ')')]",
"solutionName": "ServiceFabric"
}
Voeg de Log Analytics-agentextensie toe aan elke virtuele-machineschaalset in het cluster en verbind de agent met de Log Analytics-werkruimte. Hierdoor kunt u diagnostische gegevens over containers, toepassingen en prestatiebewaking verzamelen. Door deze extensie toe te voegen aan de virtuele-machineschaalsetbron, garandeert Azure Resource Manager dat deze op elk knooppunt wordt geïnstalleerd, zelfs wanneer de cluster wordt geschaald.
"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]"
}
}
}
...
]
}
}
}
Het virtuele netwerk en het cluster implementeren
Stel vervolgens de netwerktopologie in en implementeer het Service Fabric-cluster. Met deazuredeploy.json Resource Manager-sjabloon maakt u een virtueel netwerk, subnet en netwerkbeveiligingsgroep voor Service Fabric. Met de sjabloon wordt ook een cluster geïmplementeerd waarvoor certificaatbeveiliging is ingeschakeld. Gebruik voor productieclusters een certificaat van een certificeringsinstantie als clustercertificaat. Een zelfondertekend certificaat kan worden gebruikt om testclusters te beveiligen.
Met de sjabloon in dit artikel wordt een cluster geïmplementeerd dat gebruikmaakt van de vingerafdruk van het certificaat om het clustercertificaat te identificeren. Er kunnen geen twee certificaten dezelfde vingerafdruk hebben, waardoor certificaatbeheer moeilijker wordt. Het overschakelen van een geïmplementeerd cluster van certificaatvingerafdrukken naar algemene certificaatnamen vereenvoudigt het beheer van certificaten. Als u wilt weten hoe u het cluster bijwerkt voor het gebruik van algemene certificaatnamen voor certificaatbeheer, leest u Cluster wijzigen in algemeen naambeheer voor certificaten.
Een cluster maken met behulp van een bestaand certificaat
Het volgende script maakt gebruik van de cmdlet New-AzServiceFabricCluster en een sjabloon voor het implementeren van een nieuw cluster in Azure. De cmdlet maakt een nieuwe sleutelkluis in Azure en uploadt uw certificaat.
# 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
Een cluster maken met behulp van een nieuw, zelfondertekend certificaat
Het volgende script maakt gebruik van de cmdlet New-AzServiceFabricCluster en een sjabloon voor het implementeren van een nieuw cluster in Azure. De cmdlet maakt een nieuwe sleutelkluis in Azure, voegt een nieuw zelfondertekend certificaat toe aan de sleutelkluis en downloadt het certificaatbestand lokaal.
# 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
Verbinding maken met het beveiligde cluster
Maak verbinding met het cluster met behulp van de Service Fabric PowerShell-module die is geïnstalleerd met de Service Fabric SDK. Installeer eerst het certificaat in het persoonlijke archief (Mijn) van de huidige gebruiker op uw computer. Voer de volgende PowerShell-opdracht uit:
$certpwd="q6D7nN%6ck@6" | ConvertTo-SecureString -AsPlainText -Force
Import-PfxCertificate -Exportable -CertStoreLocation Cert:\CurrentUser\My `
-FilePath C:\mycertificates\mysfcluster20170531104310.pfx `
-Password $certpwd
U bent nu klaar om verbinding te maken met uw beveiligde cluster.
De Service Fabric PowerShell-module biedt veel cmdlets voor het beheren van Service Fabric-clusters, -toepassingen en -services. Gebruik de cmdlet Connect-ServiceFabricCluster om verbinding te maken met het beveiligde cluster. De SHA1-vingerafdruk en verbindingspuntdetails vindt u in de uitvoer van de vorige stap.
Als u eerder Microsoft Entra-clientverificatie hebt ingesteld, voert u de volgende opdracht uit:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-AzureActiveDirectory `
-ServerCertThumbprint BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11
Als u Microsoft Entra-clientverificatie niet hebt ingesteld, voert u de volgende opdracht uit:
Connect-ServiceFabricCluster -ConnectionEndpoint mysfcluster123.southcentralus.cloudapp.azure.com:19000 `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11 `
-FindType FindByThumbprint -FindValue BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11 `
-StoreLocation CurrentUser -StoreName My
Controleer of u bent verbonden en of het cluster in orde is met behulp van de cmdlet Get-ServiceFabricClusterHealth .
Get-ServiceFabricClusterHealth
De hulpbronnen opschonen
In de andere artikelen in deze reeks zelfstudies wordt het cluster gebruikt dat u hebt gemaakt. Als u niet meteen verdergaat met het volgende artikel, kunt u het cluster verwijderen om kosten te voorkomen.
Volgende stappen
Ga verder naar de volgende tutorial om te leren hoe u uw cluster kunt schalen.
- Een VNET maken in Azure met behulp van PowerShell
- Een sleutelkluis maken en een certificaat uploaden
- Microsoft Entra-verificatie instellen
- Diagnostische verzameling configureren
- De EventStore-service instellen
- Azure Monitor-logboeken instellen
- Een beveiligd Service Fabric-cluster maken in Azure PowerShell
- Het cluster beveiligen met een X.509-certificaat
- Verbinding maken met het cluster via PowerShell
- Een cluster verwijderen
Ga vervolgens verder met de volgende tutorial om te leren hoe u uw cluster kunt bewaken.
Een cluster bewaken