Configuratie-instellingen voor een zelfstandig Windows-cluster

In dit artikel worden de configuratie-instellingen van een zelfstandig Azure Service Fabric-cluster beschreven die kunnen worden ingesteld in het bestand ClusterConfig.json . U gebruikt dit bestand om informatie op te geven over de knooppunten van het cluster, beveiligingsconfiguraties en de netwerktopologie in termen van fout- en upgradedomeinen. Nadat u configuratie-instellingen hebt gewijzigd of toegevoegd, kunt u een zelfstandig cluster maken of de configuratie van een zelfstandig cluster upgraden.

Wanneer u het zelfstandige Service Fabric-pakket downloadt, worden voorbeelden van ClusterConfig.json ook opgenomen. De voorbeelden met 'DevCluster' in hun naam maken een cluster met alle drie de knooppunten op dezelfde computer, met behulp van logische knooppunten. Van deze knooppunten moet ten minste één zijn gemarkeerd als een primair knooppunt. Dit type cluster is handig voor ontwikkel- of testomgevingen. Het wordt niet ondersteund als een productiecluster. De voorbeelden met 'MultiMachine' in hun naam helpen bij het maken van clusters van productiekwaliteit, waarbij elk knooppunt op een afzonderlijke machine staat. Het aantal primaire knooppunten voor deze clusters is gebaseerd op het betrouwbaarheidsniveau van het cluster. In release 5.7, API-versie 05-2017, hebben we de eigenschap op betrouwbaarheidsniveau verwijderd. In plaats daarvan berekent onze code het meest geoptimaliseerde betrouwbaarheidsniveau voor uw cluster. Probeer geen waarde in te stellen voor deze eigenschap in versie 5.7 en hoger.

  • ClusterConfig.Unsecure.DevCluster.json en ClusterConfig.Unsecure.MultiMachine.json laten zien hoe u respectievelijk een onbeveiligd test- of productiecluster maakt.

  • ClusterConfig.Windows.DevCluster.json en ClusterConfig.Windows.MultiMachine.json laten zien hoe u test- of productieclusters maakt die zijn beveiligd met windows-beveiliging.

  • ClusterConfig.X509.DevCluster.json en ClusterConfig.X509.MultiMachine.json laten zien hoe u test- of productieclusters maakt die zijn beveiligd met X509-beveiliging op basis van certificaten.

Laten we nu de verschillende secties van een ClusterConfig.json-bestand bekijken.

Algemene clusterconfiguraties

Algemene clusterconfiguraties hebben betrekking op de brede clusterspecifieke configuraties, zoals wordt weergegeven in het volgende JSON-fragment:

    "name": "SampleCluster",
    "clusterConfigurationVersion": "1.0.0",
    "apiVersion": "01-2017",

U kunt een beschrijvende naam aan uw Service Fabric-cluster geven door het toe te wijzen aan de naamvariabele. De clusterConfigurationVersion is het versienummer van uw cluster. Verhoog dit telkens wanneer u uw Service Fabric-cluster upgradet. Laat apiVersion ingesteld op de standaardwaarde.

Knooppunten in het cluster

U kunt de knooppunten in uw Service Fabric-cluster configureren met behulp van de sectie knooppunten, zoals in het volgende fragment wordt weergegeven:

"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"
}],

Een Service Fabric-cluster moet ten minste drie knooppunten bevatten. U kunt meer knooppunten aan deze sectie toevoegen op basis van uw installatie. In de volgende tabel worden de configuratie-instellingen voor elk knooppunt uitgelegd:

Knooppuntconfiguratie Beschrijving
nodeName U kunt een beschrijvende naam aan het knooppunt geven.
iPAddress Ontdek het IP-adres van uw knooppunt door een opdrachtvenster te openen en te typen ipconfig. Noteer het IPV4-adres en wijs dit toe aan de variabele iPAddress.
nodeTypeRef Aan elk knooppunt kan een ander knooppunttype worden toegewezen. De knooppunttypen worden gedefinieerd in de volgende sectie.
faultDomain Met foutdomeinen kunnen clusterbeheerders de fysieke knooppunten definiëren die op hetzelfde moment kunnen mislukken vanwege gedeelde fysieke afhankelijkheden.
upgradeDomain Upgradedomeinen beschrijven sets knooppunten die ongeveer tegelijkertijd worden afgesloten voor Service Fabric-upgrades. U kunt kiezen welke knooppunten u wilt toewijzen aan welke upgradedomeinen, omdat deze niet worden beperkt door fysieke vereisten.

Clustereigenschappen

De sectie eigenschappen in ClusterConfig.json wordt gebruikt om het cluster te configureren zoals weergegeven:

Betrouwbaarheid

Het concept van reliabilityLevel definieert het aantal replica's of exemplaren van de Service Fabric-systeemservices die kunnen worden uitgevoerd op de primaire knooppunten van het cluster. Het bepaalt de betrouwbaarheid van deze services en dus het cluster. De waarde wordt door het systeem berekend tijdens het maken en upgraden van het cluster.

Diagnostiek

In de sectie diagnosticsStore kunt u parameters configureren om diagnostische gegevens in te schakelen en knooppunt- of clusterfouten op te lossen, zoals wordt weergegeven in het volgende fragment:

"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"
}

De metagegevens zijn een beschrijving van uw clusterdiagnose en kunnen worden ingesteld op basis van uw instellingen. Deze variabelen helpen bij het verzamelen van ETW-traceringslogboeken en crashdumps, evenals prestatiemeteritems. Zie Tracelog en ETW-tracering voor meer informatie over ETW-traceringslogboeken. Alle logboeken, inclusief crashdumps en prestatiemeteritems, kunnen worden omgeleid naar de map connectionString op uw computer. U kunt ook AzureStorage gebruiken om diagnostische gegevens op te slaan. Zie het volgende voorbeeldfragment:

"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]"
}

Beveiliging

De beveiligingssectie is nodig voor een veilig zelfstandig Service Fabric-cluster. In het volgende fragment ziet u een deel van deze sectie:

"security": {
    "metadata": "This cluster is secured using X509 certificates.",
    "ClusterCredentialType": "X509",
    "ServerCredentialType": "X509",
    . . .
}

De metagegevens zijn een beschrijving van uw beveiligde cluster en kunnen worden ingesteld op basis van uw instellingen. Het ClusterCredentialType en ServerCredentialType bepalen het type beveiliging dat het cluster en de knooppunten implementeren. Ze kunnen worden ingesteld op X509 voor een beveiliging op basis van certificaten of Windows voor beveiliging op basis van Active Directory. De rest van de beveiligingssectie is gebaseerd op het type beveiliging. Zie Beveiliging op basis van certificaten in een zelfstandig cluster of Windows-beveiliging in eenzelfstandig cluster voor informatie over het invullen van de rest van de beveiligingssectie.

Knooppunttypen

In de sectie nodeTypes wordt het type knooppunten beschreven dat uw cluster bevat. Er moet ten minste één knooppunttype worden opgegeven voor een cluster, zoals wordt weergegeven in het volgende fragment:

"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
}]

De naam is de beschrijvende naam voor dit specifieke knooppunttype. Als u een knooppunt van dit knooppunttype wilt maken, wijst u de beschrijvende naam toe aan de variabele nodeTypeRef voor dat knooppunt, zoals eerder vermeld. Definieer voor elk knooppunttype de verbindingseindpunten die worden gebruikt. U kunt elk poortnummer voor deze verbindingseindpunten kiezen, zolang ze niet conflicteren met andere eindpunten in dit cluster. In een cluster met meerdere knooppunten zijn er een of meer primaire knooppunten (dat wil gezegd, isPrimary is ingesteld op true), afhankelijk van het betrouwbaarheidsniveau. Zie Planningsoverwegingen voor Service Fabric-clustercapaciteit voor informatie over nodeTypes en betrouwbaarheidsniveau voor meer informatie over primaire en niet-primaire knooppunttypen.

Eindpunten die worden gebruikt voor het configureren van de knooppunttypen

  • clientConnectionEndpointPort is de poort die door de client wordt gebruikt om verbinding te maken met het cluster wanneer client-API's worden gebruikt.
  • clusterConnectionEndpointPort is de poort waar de knooppunten met elkaar communiceren.
  • leaseDriverEndpointPort is de poort die wordt gebruikt door het clusterleasestuurprogramma om erachter te komen of de knooppunten nog actief zijn.
  • serviceConnectionEndpointPort is de poort die wordt gebruikt door de toepassingen en services die op een knooppunt zijn geïmplementeerd om te communiceren met de Service Fabric-client op dat specifieke knooppunt.
  • httpGatewayEndpointPort is de poort die door Service Fabric Explorer wordt gebruikt om verbinding te maken met het cluster.
  • ephemeralPorts overschrijven de dynamische poorten die door het besturingssysteem worden gebruikt. Service Fabric gebruikt een deel van deze poorten als toepassingspoorten en de resterende poorten zijn beschikbaar voor het besturingssysteem. Het wijst dit bereik ook toe aan het bestaande bereik dat aanwezig is in het besturingssysteem, zodat u voor alle doeleinden de bereiken kunt gebruiken die zijn opgegeven in de voorbeeld-JSON-bestanden. Zorg ervoor dat het verschil tussen de begin- en eindpoort ten minste 255 is. Er kunnen conflicten optreden als dit verschil te laag is, omdat dit bereik wordt gedeeld met het besturingssysteem. Voer netsh int ipv4 show dynamicport tcpuit om het geconfigureerde dynamische poortbereik te zien.
  • applicationPorts zijn de poorten die worden gebruikt door de Service Fabric-toepassingen. Het poortbereik van de toepassing moet groot genoeg zijn om de eindpuntvereiste van uw toepassingen te dekken. Dit bereik moet exclusief zijn van het dynamische poortbereik op de machine, dat wil gezegd, het kortstondigePorts-bereik zoals ingesteld in de configuratie. Service Fabric gebruikt deze poorten wanneer er nieuwe poorten nodig zijn en zorgt ervoor dat de firewall voor deze poorten wordt geopend.
  • reverseProxyEndpointPort is een optioneel eindpunt voor omgekeerde proxy. Zie Omgekeerde proxy van Service Fabric voor meer informatie.

Logboekinstellingen

In de sectie fabricSettings kunt u de hoofdmappen instellen voor de Service Fabric-gegevens en -logboeken. U kunt deze mappen alleen aanpassen tijdens het maken van het eerste cluster. Zie het volgende voorbeeldfragment van deze sectie:

"fabricSettings": [{
    "name": "Setup",
    "parameters": [{
        "name": "FabricDataRoot",
        "value": "C:\\ProgramData\\SF"
    }, {
        "name": "FabricLogRoot",
        "value": "C:\\ProgramData\\SF\\Log"
}]

U wordt aangeraden een niet-besturingssysteemstation te gebruiken als FabricDataRoot en FabricLogRoot. Het biedt meer betrouwbaarheid bij het vermijden van situaties waarin het besturingssysteem niet meer reageert. Als u alleen de gegevenshoofdmap aanpast, wordt de logboekhoofdmap één niveau onder de gegevenshoofdmap geplaatst.

Stateful Reliable Services-instellingen

In de sectie KtlLogger kunt u de algemene configuratie-instellingen voor Reliable Services instellen. Zie Stateful Reliable Services configureren voor meer informatie over deze instellingen. In het volgende voorbeeld ziet u hoe u het gedeelde transactielogboek wijzigt dat wordt gemaakt om betrouwbare verzamelingen voor stateful services te back-uden:

"fabricSettings": [{
    "name": "KtlLogger",
    "parameters": [{
        "name": "SharedLogSizeInMB",
        "value": "4096"
    }]
}]

Invoegtoepassingsfuncties

Als u invoegtoepassingsfuncties wilt configureren, configureert u de apiVersion als 04-2017 of hoger en configureert u de addonFeatures zoals hier wordt weergegeven:

"apiVersion": "04-2017",
"properties": {
    "addOnFeatures": [
        "DnsService",
        "RepairManager"
    ]
}

Alle beschikbare invoegtoepassingsfuncties zijn te zien in de Service Fabric REST API-verwijzing.

Ondersteuning voor containers

Als u containerondersteuning wilt inschakelen voor zowel Windows Server-containers als Hyper-V-containers voor zelfstandige clusters, moet de invoegtoepassing DnsService zijn ingeschakeld.

Volgende stappen

Nadat u een volledig ClusterConfig.json-bestand hebt geconfigureerd op basis van de installatie van uw zelfstandige cluster, kunt u het cluster implementeren. Volg de stappen in Een zelfstandig Service Fabric-cluster maken.

Als u een zelfstandig cluster hebt geïmplementeerd, kunt u ook de configuratie van een zelfstandig cluster upgraden.

Meer informatie over het visualiseren van uw cluster met Service Fabric Explorer.