Konfigurationsinställningar för ett fristående Windows-kluster
I den här artikeln beskrivs konfigurationsinställningar för ett fristående Azure Service Fabric-kluster som kan anges i ClusterConfig.json-filen. Du använder den här filen för att ange information om klustrets noder, säkerhetskonfigurationer samt nätverkstopologin när det gäller fel- och uppgraderingsdomäner. När du har ändrat eller lagt till konfigurationsinställningar kan du antingen skapa ett fristående kluster eller uppgradera konfigurationen av ett fristående kluster.
När du laddar ned det fristående Service Fabric-paketet ingår även ClusterConfig.json exempel. De exempel som har "DevCluster" i sina namn skapar ett kluster med alla tre noderna på samma dator med hjälp av logiska noder. Av dessa noder måste minst en markeras som en primär nod. Den här typen av kluster är användbar för utvecklings- eller testmiljöer. Det stöds inte som ett produktionskluster. De exempel som har "MultiMachine" i sina namn hjälper till att skapa kluster i produktionsklass med varje nod på en separat dator. Antalet primära noder för dessa kluster baseras på klustrets tillförlitlighetsnivå. I version 5.7, API Version 05-2017, tog vi bort egenskapen på tillförlitlighetsnivå. I stället beräknar vår kod den mest optimerade tillförlitlighetsnivån för klustret. Försök inte att ange ett värde för den här egenskapen i version 5.7 och senare.
ClusterConfig.Unsecure.DevCluster.json och ClusterConfig.Unsecure.MultiMachine.json visar hur du skapar ett osäkert test eller produktionskluster.
ClusterConfig.Windows.DevCluster.json och ClusterConfig.Windows.MultiMachine.json visar hur du skapar test- eller produktionskluster som skyddas med hjälp av Windows-säkerhet.
ClusterConfig.X509.DevCluster.json och ClusterConfig.X509.MultiMachine.json visar hur du skapar test- eller produktionskluster som skyddas med hjälp av X509-certifikatbaserad säkerhet.
Nu ska vi undersöka de olika avsnitten i en ClusterConfig.json fil.
Allmänna klusterkonfigurationer
Allmänna klusterkonfigurationer omfattar de breda klusterspecifika konfigurationerna, enligt följande JSON-kodfragment:
"name": "SampleCluster",
"clusterConfigurationVersion": "1.0.0",
"apiVersion": "01-2017",
Du kan ge ett eget namn till ditt Service Fabric-kluster genom att tilldela det till namnvariabeln. ClusterConfigurationVersion är versionsnumret för klustret. Öka den varje gång du uppgraderar Service Fabric-klustret. Låt apiVersion vara inställt på standardvärdet.
Noder i klustret
Du kan konfigurera noderna i Service Fabric-klustret med hjälp av nodavsnittet, som följande kodfragment visar:
"nodes": [{
"nodeName": "vm0",
"iPAddress": "localhost",
"nodeTypeRef": "NodeType0",
"faultDomain": "fd:/dc1/r0",
"upgradeDomain": "UD0"
}, {
"nodeName": "vm1",
"iPAddress": "localhost",
"nodeTypeRef": "NodeType1",
"faultDomain": "fd:/dc1/r1",
"upgradeDomain": "UD1"
}, {
"nodeName": "vm2",
"iPAddress": "localhost",
"nodeTypeRef": "NodeType2",
"faultDomain": "fd:/dc1/r2",
"upgradeDomain": "UD2"
}],
Ett Service Fabric-kluster måste innehålla minst tre noder. Du kan lägga till fler noder i det här avsnittet enligt din konfiguration. I följande tabell förklaras konfigurationsinställningarna för varje nod:
Klusteregenskaper
Avsnittet egenskaper i ClusterConfig.json används för att konfigurera klustret enligt följande:
Tillförlitlighet
Begreppet reliabilityLevel definierar antalet repliker eller instanser av Service Fabric-systemtjänsterna som kan köras på de primära noderna i klustret. Den avgör tillförlitligheten för dessa tjänster och därmed klustret. Värdet beräknas av systemet när klustret skapas och uppgraderas.
Diagnostik
I avsnittet diagnosticsStore kan du konfigurera parametrar för att aktivera diagnostik och felsöka nod- eller klusterfel, enligt följande kodfragment:
"diagnosticsStore": {
"metadata": "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
"dataDeletionAgeInDays": "7",
"storeType": "FileShare",
"IsEncrypted": "false",
"connectionstring": "c:\\ProgramData\\SF\\DiagnosticsStore"
}
Metadata är en beskrivning av klusterdiagnostiken och kan anges enligt konfigurationen. Dessa variabler hjälper dig att samla in ETW-spårningsloggar och kraschdumpar samt prestandaräknare. Mer information om ETW-spårningsloggar finns i Spårningslogg och ETW-spårning. Alla loggar, inklusive kraschdumpar och prestandaräknare, kan dirigeras till mappen connectionString på datorn. Du kan också använda AzureStorage för att lagra diagnostik. Se följande exempelfragment:
"diagnosticsStore": {
"metadata": "Please replace the diagnostics store with an actual file share accessible from all cluster machines.",
"dataDeletionAgeInDays": "7",
"storeType": "AzureStorage",
"IsEncrypted": "false",
"connectionstring": "xstore:DefaultEndpointsProtocol=https;AccountName=[AzureAccountName];AccountKey=[AzureAccountKey]"
}
Säkerhet
Säkerhetsavsnittet är nödvändigt för ett säkert fristående Service Fabric-kluster. Följande kodfragment visar en del av det här avsnittet:
"security": {
"metadata": "This cluster is secured using X509 certificates.",
"ClusterCredentialType": "X509",
"ServerCredentialType": "X509",
. . .
}
Metadata är en beskrivning av ditt säkra kluster och kan ställas in enligt konfigurationen. ClusterCredentialType och ServerCredentialType avgör vilken typ av säkerhet klustret och noderna implementerar. De kan anges till antingen X509 för en certifikatbaserad säkerhet eller Windows för Active Directory-baserad säkerhet. Resten av säkerhetsavsnittet baseras på typen av säkerhet. Information om hur du fyller i resten av säkerhetsavsnittet finns i Certifikatbaserad säkerhet i ett fristående kluster eller Windows-säkerhet i ett fristående kluster.
Nodtyper
Avsnittet nodeTypes beskriver vilken typ av noder klustret har. Minst en nodtyp måste anges för ett kluster, enligt följande kodfragment:
"nodeTypes": [{
"name": "NodeType0",
"clientConnectionEndpointPort": "19000",
"clusterConnectionEndpointPort": "19001",
"leaseDriverEndpointPort": "19002",
"serviceConnectionEndpointPort": "19003",
"httpGatewayEndpointPort": "19080",
"reverseProxyEndpointPort": "19081",
"applicationPorts": {
"startPort": "20575",
"endPort": "20605"
},
"ephemeralPorts": {
"startPort": "20606",
"endPort": "20861"
},
"isPrimary": true
}]
Namnet är det egna namnet för den här nodtypen. Om du vill skapa en nod av den här nodtypen tilldelar du det egna namnet till nodeTypeRef-variabeln för den noden, som tidigare nämnts. För varje nodtyp definierar du de anslutningsslutpunkter som används. Du kan välja valfritt portnummer för dessa anslutningsslutpunkter så länge de inte står i konflikt med andra slutpunkter i det här klustret. I ett multinodkluster finns det en eller flera primära noder (dvs. isPrimary är inställt på sant), beroende på tillförlitlighetNivå. Mer information om primära och icke-primära nodtyper finns i Överväganden för kapacitetsplanering för Service Fabric-kluster för information om nodeTypes och tillförlitlighetNivå.
Slutpunkter som används för att konfigurera nodtyperna
- clientConnectionEndpointPort är den port som används av klienten för att ansluta till klustret när klient-API:er används.
- clusterConnectionEndpointPort är porten där noderna kommunicerar med varandra.
- leaseDriverEndpointPort är den port som används av klusterlånedrivrutinen för att ta reda på om noderna fortfarande är aktiva.
- serviceConnectionEndpointPort är den port som används av de program och tjänster som distribueras på en nod för att kommunicera med Service Fabric-klienten på den specifika noden.
- httpGatewayEndpointPort är den port som används av Service Fabric Explorer för att ansluta till klustret.
- tillfälligaportar åsidosätter de dynamiska portar som används av operativsystemet. Service Fabric använder en del av dessa portar som programportar och de återstående är tillgängliga för operativsystemet. Det mappar också det här intervallet till det befintliga intervallet som finns i operativsystemet, så för alla ändamål kan du använda intervallen som anges i JSON-exempelfilerna. Kontrollera att skillnaden mellan start- och slutportarna är minst 255. Du kan stöta på konflikter om den här skillnaden är för låg eftersom det här intervallet delas med operativsystemet. Om du vill se det konfigurerade dynamiska portintervallet kör du
netsh int ipv4 show dynamicport tcp
. - applicationPorts är de portar som används av Service Fabric-programmen. Programmets portintervall bör vara tillräckligt stort för att täcka slutpunktskravet för dina program. Det här intervallet bör vara exklusivt från det dynamiska portintervallet på datorn, dvs. intervallet ephemeralPorts enligt konfigurationen. Service Fabric använder dessa portar när nya portar krävs och tar hand om att öppna brandväggen för dessa portar.
- reverseProxyEndpointPort är en valfri omvänd proxyslutpunkt. Mer information finns i Omvänd Proxy för Service Fabric.
Logginställningar
I avsnittet fabricSettings kan du ange rotkatalogerna för Service Fabric-data och -loggar. Du kan endast anpassa dessa kataloger när du skapar det första klustret. Se följande exempelfragment i det här avsnittet:
"fabricSettings": [{
"name": "Setup",
"parameters": [{
"name": "FabricDataRoot",
"value": "C:\\ProgramData\\SF"
}, {
"name": "FabricLogRoot",
"value": "C:\\ProgramData\\SF\\Log"
}]
Vi rekommenderar att du använder en icke-OS-enhet som FabricDataRoot och FabricLogRoot. Det ger mer tillförlitlighet för att undvika situationer när operativsystemet slutar svara. Om du bara anpassar dataroten placeras loggroten en nivå under dataroten.
Tillståndskänsliga inställningar för Reliable Services
I avsnittet KtlLogger kan du ange globala konfigurationsinställningar för Reliable Services. Mer information om de här inställningarna finns i Konfigurera tillståndskänsliga tillförlitliga tjänster. I följande exempel visas hur du ändrar den delade transaktionsloggen som skapas för att stödja tillförlitliga samlingar för tillståndskänsliga tjänster:
"fabricSettings": [{
"name": "KtlLogger",
"parameters": [{
"name": "SharedLogSizeInMB",
"value": "4096"
}]
}]
Tilläggsfunktioner
Om du vill konfigurera tilläggsfunktioner konfigurerar du apiVersion som 04–2017 eller senare och konfigurerar addonFeatures enligt följande:
"apiVersion": "04-2017",
"properties": {
"addOnFeatures": [
"DnsService",
"RepairManager"
]
}
Alla tillgängliga tilläggsfunktioner visas i REST API-referensen för Service Fabric.
Stöd för containrar
Om du vill aktivera containerstöd för både Windows Server-containrar och Hyper-V-containrar för fristående kluster måste dnsservice-tilläggsfunktionen vara aktiverad.
Nästa steg
När du har en fullständig ClusterConfig.json fil som konfigurerats enligt konfigurationen av det fristående klustret kan du distribuera klustret. Följ stegen i Skapa ett fristående Service Fabric-kluster.
Om du har ett fristående kluster distribuerat kan du även uppgradera konfigurationen av ett fristående kluster.
Lär dig hur du visualiserar klustret med Service Fabric Explorer.