Konfigurationseinstellungen für einen eigenständigen Windows-ClusterConfiguration settings for a standalone Windows cluster

In diesem Artikel werden die Konfigurationseinstellungen für einen eigenständigen Azure Service Fabric-Cluster beschrieben, die in der ClusterConfig.json-Datei festgelegt werden können.This article describes configuration settings of a standalone Azure Service Fabric cluster that can be set in the ClusterConfig.json file. Sie verwenden diese Datei, um Informationen zu den Knoten des Clusters, den Sicherheitskonfigurationen sowie zur Netzwerktopologie in Bezug auf Fehler- und Upgradedomänen anzugeben.You will use this file to specify information about the cluster's nodes, security configurations, as well as the network topology in terms of fault and upgrade domains. Nach dem Ändern oder Hinzufügen von Konfigurationseinstellungen können Sie entweder einen eigenständigen Cluster erstellen oder die Konfiguration eines eigenständigen Clusters aktualisieren.After changing or adding configuration settings, you can either create a standalone cluster or upgrade the configuration of a standalone cluster.

Wenn Sie das eigenständige Service Fabric-Paket herunterladen, sind auch ClusterConfig.json-Beispiele enthalten.When you download the standalone Service Fabric package, ClusterConfig.json samples are also included. Die Beispiele mit „DevCluster“ im Namen erstellen mithilfe logischer Knoten einen Cluster mit allen drei Knoten auf demselben Computer.The samples that have "DevCluster" in their names create a cluster with all three nodes on the same machine, using logical nodes. Davon muss mindestens ein Knoten als primärer Knoten gekennzeichnet sein.Out of these nodes, at least one must be marked as a primary node. Dieser Clustertyp eignet sich für Entwicklungs- oder Testumgebungen.This type of cluster is useful for development or test environments. Er wird nicht als Produktionscluster unterstützt.It is not supported as a production cluster. Die Beispiele mit „MultiMachine“ im Namen dienen Ihnen als Hilfe beim Erstellen von Clustern in Produktionsqualität, bei dem sich jeder Knoten auf einem anderen Computer befindet.The samples that have "MultiMachine" in their names help create production grade clusters, with each node on a separate machine. Die Anzahl von primären Knoten für diese Cluster basiert jeweils auf der Zuverlässigkeitsstufe des Clusters.The number of primary nodes for these clusters is based on the cluster's reliability level. Im Release 5.7, API-Version 05-2017 wurde die Eigenschaft für die Zuverlässigkeitsstufe entfernt.In release 5.7, API Version 05-2017, we removed the reliability-level property. Stattdessen wird mit dem Code die optimale Zuverlässigkeitsstufe für Ihren Cluster berechnet.Instead, our code calculates the most optimized reliability level for your cluster. Versuchen Sie nicht, einen Wert für diese Eigenschaft in den Versionen ab 5.7 festzulegen.Do not try to set a value for this property in versions 5.7 onwards.

  • Mit „ClusterConfig.Unsecure.DevCluster.json“ und „ClusterConfig.Unsecure.MultiMachine.json“ wird veranschaulicht, wie Sie einen ungeschützten Test- bzw. Produktionscluster erstellen.ClusterConfig.Unsecure.DevCluster.json and ClusterConfig.Unsecure.MultiMachine.json show how to create an unsecured test or production cluster, respectively.

  • Mit „ClusterConfig.Windows.DevCluster.json“ und „ClusterConfig.Windows.MultiMachine.json“ wird veranschaulicht, wie Sie einen Test- oder Produktionscluster erstellen, der per Windows-Sicherheit geschützt ist.ClusterConfig.Windows.DevCluster.json and ClusterConfig.Windows.MultiMachine.json show how to create test or production clusters that are secured by using Windows security.

  • Mit „ClusterConfig.X509.DevCluster.json“ und „ClusterConfig.X509.MultiMachine.json“ wird veranschaulicht, wie Sie einen Test- oder Produktionscluster erstellen, der per Sicherheit auf Basis des X509-Zertifikats geschützt ist.ClusterConfig.X509.DevCluster.json and ClusterConfig.X509.MultiMachine.json show how to create test or production clusters that are secured by using X509 certificate-based security.

Sehen wir uns nun die verschiedenen Abschnitte der Datei „ClusterConfig.json“ an.Now let's examine the various sections of a ClusterConfig.json file.

Allgemeine ClusterkonfigurationenGeneral cluster configurations

Allgemeine Clusterkonfigurationen behandeln wie im folgenden JSON-Ausschnitt dargestellt die allgemeinen clusterspezifischen Konfigurationen:General cluster configurations cover the broad cluster-specific configurations, as shown in the following JSON snippet:

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

Sie können für Ihren Service Fabric-Cluster einen beliebigen Anzeigenamen festlegen, indem sie ihn der Variablen „name“ zuweisen.You can give any friendly name to your Service Fabric cluster by assigning it to the name variable. Die „clusterConfigurationVersion“ ist die Versionsnummer Ihres Clusters.The clusterConfigurationVersion is the version number of your cluster. Erhöhen Sie diese Nummer jedes Mal, wenn Sie Ihr Service Fabric-Cluster upgraden.Increase it every time you upgrade your Service Fabric cluster. Behalten Sie für „apiVersion“ den Standardwert bei.Leave apiVersion set to the default value.

Knoten im ClusterNodes on the cluster

Sie können die Knoten in Ihrem Service Fabric-Cluster, wie im folgenden Codeausschnitt gezeigt, mithilfe des „nodes“-Abschnitts konfigurieren:You can configure the nodes on your Service Fabric cluster by using the nodes section, as the following snippet shows:

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

Ein Service Fabric-Cluster muss mindestens drei Knoten enthalten.A Service Fabric cluster must contain at least three nodes. Wenn es für Ihr Setup erforderlich ist, können Sie diesem Abschnitt weitere Knoten hinzufügen.You can add more nodes to this section according to your setup. In der folgenden Tabelle werden Konfigurationseinstellungen für die einzelnen Knoten erläutert:The following table explains configuration settings for each node:

KnotenkonfigurationNode configuration BeschreibungDescription
nodeNamenodeName Sie können einen beliebigen Anzeigenamen für den Knoten festlegen.You can give any friendly name to the node.
iPAddressiPAddress Ermitteln Sie die IP-Adresse Ihres Knotens, indem Sie in einem Befehlsfenster ipconfigeingeben.Find out the IP address of your node by opening a command window and typing ipconfig. Notieren Sie sich die IPv4-Adresse, und weisen Sie sie der Variablen „iPAddress“ zu.Note the IPV4 address, and assign it to the iPAddress variable.
nodeTypeRefnodeTypeRef Jedem Knoten kann ein anderer Knotentyp zugewiesen werden.Each node can be assigned a different node type. Die Knotentypen werden im folgenden Abschnitt definiert.The node types are defined in the following section.
faultDomainfaultDomain Mit Fehlerdomänen können Clusteradministratoren die physischen Knoten definieren, die unter Umständen gleichzeitig ausfallen können, weil gemeinsame physische Abhängigkeiten bestehen.Fault domains enable cluster administrators to define the physical nodes that might fail at the same time due to shared physical dependencies.
upgradeDomainupgradeDomain Upgradedomänen beschreiben Gruppen von Knoten, die zum Durchführen von Service Fabric-Upgrades zur gleichen Zeit heruntergefahren werden.Upgrade domains describe sets of nodes that are shut down for Service Fabric upgrades at about the same time. Sie können selbst auswählen, welche Knoten den Upgradedomänen zugewiesen werden sollen, denn es bestehen hier keine physischen Einschränkungen.You can choose which nodes to assign to which upgrade domains, because they aren't limited by any physical requirements.

ClustereigenschaftenCluster properties

Im Abschnitt „properties“ der Datei „ClusterConfig.json“ wird der Cluster wie folgt konfiguriert:The properties section in the ClusterConfig.json is used to configure the cluster as shown:

ZuverlässigkeitReliability

Das Konzept „reliabilityLevel“ definiert die Anzahl von Replikaten oder Instanzen der Service Fabric-Systemdienste, die auf den primären Knoten des Clusters ausgeführt werden können.The concept of reliabilityLevel defines the number of replicas or instances of the Service Fabric system services that can run on the primary nodes of the cluster. Es bestimmt die Zuverlässigkeit dieser Dienste und damit auch des Clusters.It determines the reliability of these services and hence the cluster. Der Wert wird vom System bei der Clustererstellung und beim Upgraden des Clusters berechnet.The value is calculated by the system at cluster creation and upgrade time.

DiagnoseDiagnostics

Im Abschnitt „diagnosticsStore“ können Sie Parameter konfigurieren, um bei Knoten- und Clusterausfällen die Diagnose und Fehlerbehandlung zu ermöglichen. Dies wird im folgenden Codeausschnitt veranschaulicht:In the diagnosticsStore section, you can configure parameters to enable diagnostics and troubleshooting node or cluster failures, as shown in the following snippet:

"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“ ist eine Beschreibung Ihres Clusters und kann gemäß Ihrem Setup festgelegt werden.The metadata is a description of your cluster diagnostics and can be set according to your setup. Diese Variablen helfen Ihnen beim Sammeln von ETW-Ablaufprotokollen, Absturzabbildern und Leistungsindikatoren.These variables help in collecting ETW trace logs and crash dumps as well as performance counters. Weitere Informationen über ETW-Ablaufprotokolle finden Sie unter Tracelog und ETW-Ablaufverfolgung.For more information on ETW trace logs, see Tracelog and ETW tracing. Alle Protokolle einschließlich Absturzabbildern und Leistungsindikatoren können zum Ordner „connectionString“ auf Ihrem Computer geleitet werden.All logs, including crash dumps and performance counters, can be directed to the connectionString folder on your machine. Sie können AzureStorage auch zum Speichern von Diagnosen verwenden.You also can use AzureStorage to store diagnostics. Informationen hierzu finden Sie auch im folgenden Beispielcodeausschnitt:See the following sample snippet:

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

SicherheitSecurity

Der Abschnitt „security“ wird für einen sicheren eigenständigen Service Fabric-Cluster benötigt.The security section is necessary for a secure standalone Service Fabric cluster. Der folgende Codeausschnitt zeigt einen Teil dieses Abschnitts:The following snippet shows a part of this section:

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

„Metadata“ ist eine Beschreibung Ihres sicheren Clusters und kann gemäß Ihrem Setup festgelegt werden.The metadata is a description of your secure cluster and can be set according to your setup. „ClusterCredentialType“ und „ServerCredentialType“ bestimmen den Typ der Sicherheit, der im Cluster und in den Knoten implementiert wird.The ClusterCredentialType and ServerCredentialType determine the type of security that the cluster and the nodes implement. Sie können X509 für eine auf Zertifikaten basierende Sicherheit oder Windows für eine auf Active Directory basierende Sicherheit festlegen.They can be set to either X509 for a certificate-based security or Windows for Active Directory-based security. Die übrigen Festlegungen im Abschnitt „security“ hängen vom Typ der Sicherheit ab.The rest of the security section is based on the type of security. Informationen darüber, wie Sie die restlichen Teile des Abschnitts „security“ ausfüllen, erhalten Sie in den Artikeln Zertifikatbasierte Sicherheit in eigenständigen Windows-Clustern und Windows-Sicherheit in eigenständigen Windows-Clustern.For information on how to fill out the rest of the security section, see Certificates-based security in a standalone cluster or Windows security in a standalone cluster.

KnotentypenNode types

Im Abschnitt „nodeTypes“ werden die Typen der Knoten beschrieben, die in Ihrem Cluster vorhanden sind.The nodeTypes section describes the type of nodes that your cluster has. Es muss wie im folgenden Codeausschnitt gezeigt mindestens ein Knotentyp für einen Cluster angegeben sein:At least one node type must be specified for a cluster, as shown in the following snippet:

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

Der Name ist der Anzeigename für diesen bestimmten Knotentyp.The name is the friendly name for this particular node type. Weisen Sie zum Erstellen eines Knotens dieses Typs seinen Anzeigenamen der Variablen „nodeTypeRef“ für den Knoten zu, wie zuvor beschrieben.To create a node of this node type, assign its friendly name to the nodeTypeRef variable for that node, as previously mentioned. Definieren Sie für jeden Knotentyp die zu verwendenden Verbindungsendpunkte.For each node type, define the connection endpoints that are used. Für diese Verbindungsendpunkte können Sie jede beliebige Portnummer auswählen, sofern dadurch keine Konflikte mit anderen Endpunkten in diesem Cluster entstehen.You can choose any port number for these connection endpoints, as long as they don't conflict with any other endpoints in this cluster. In einem Cluster mit mehreren Knoten gibt es mindestens einen primären Knoten („isPrimary“ ist TRUE). Dies richtet sich nach der Zuverlässigkeitsstufe (reliabilityLevel).In a multinode cluster, there are one or more primary nodes (that is, isPrimary is set to true), depending on the reliabilityLevel. Informationen zu den primären Knoten und anderen Knotentypen sowie zu „nodeTypes“ und „reliabilityLevel“ erhalten Sie unter Überlegungen zur Kapazitätsplanung für Service Fabric-Cluster.To learn more about primary and nonprimary node types, see Service Fabric cluster capacity planning considerations for information on nodeTypes and reliabilityLevel.

Endpunkte zum Konfigurieren der KnotentypenEndpoints used to configure the node types

  • „clientConnectionEndpointPort“ ist der Port, der vom Client zum Herstellen der Verbindung mit dem Cluster verwendet wird, wenn die Client-APIs genutzt werden.clientConnectionEndpointPort is the port used by the client to connect to the cluster when client APIs are used.
  • „clusterConnectionEndpointPort“ ist der Port, über den die Knoten miteinander kommunizieren.clusterConnectionEndpointPort is the port where the nodes communicate with each other.
  • „leaseDriverEndpointPort“ ist der Port, über den vom Clusterleasetreiber ermittelt wird, ob die Knoten noch aktiv sind.leaseDriverEndpointPort is the port used by the cluster lease driver to find out if the nodes are still active.
  • „serviceConnectionEndpointPort“ ist der Port, der von den auf einem Knoten bereitgestellten Anwendungen und Diensten verwendet wird, um mit dem Service Fabric-Client auf dem jeweiligen Knoten zu kommunizieren.serviceConnectionEndpointPort is the port used by the applications and services deployed on a node to communicate with the Service Fabric client on that particular node.
  • „httpGatewayEndpointPort“ ist der Port, der vom Service Fabric Explorer zum Herstellen der Verbindung mit dem Cluster verwendet wird.httpGatewayEndpointPort is the port used by Service Fabric Explorer to connect to the cluster.
  • „ephemeralPorts“ setzen die vom Betriebssystem verwendeten dynamischen Ports außer Kraft.ephemeralPorts override the dynamic ports used by the OS. Service Fabric nutzt einen Teil dieser Ports als Anwendungsports, und die restlichen Ports sind für das Betriebssystem verfügbar.Service Fabric uses a part of these ports as application ports, and the remaining are available for the OS. Außerdem wird dieser Bereich dem vorhandenen Bereich des Betriebssystems zugeordnet, und Sie können die in den JSON-Beispieldateien angegebenen Bereiche für alle Zwecke verwenden.It also maps this range to the existing range present in the OS, so for all purposes, you can use the ranges given in the sample JSON files. Stellen Sie sicher, dass der Unterschied zwischen den Start- und Endports mindestens 255 beträgt.Make sure that the difference between the start and the end ports is at least 255. Wenn dieser Unterschied zu gering ist, kommt es womöglich zu Konflikten, da dieser Bereich für das Betriebssystem freigegeben ist.You might run into conflicts if this difference is too low, because this range is shared with the OS. Um den konfigurierten dynamischen Portbereich anzuzeigen, führen Sie netsh int ipv4 show dynamicport tcp aus.To see the configured dynamic port range, run netsh int ipv4 show dynamicport tcp.
  • „applicationPorts“ sind die Ports, die von den Service Fabric-Anwendungen verwendet werden.applicationPorts are the ports that are used by the Service Fabric applications. Der Portbereich der Anwendung sollte ausreichend sein, um die Endpunktanforderung Ihrer Anwendungen abzudecken.The application port range should be large enough to cover the endpoint requirement of your applications. Dieser Bereich sollte vom dynamischen Portbereich auf dem Computer (dem „ephemeralPorts“-Bereich in der Konfiguration) getrennt sein.This range should be exclusive from the dynamic port range on the machine, that is, the ephemeralPorts range as set in the configuration. Service Fabric greift auf diese Ports zurück, wenn neue Ports benötigt werden, und öffnet die Firewall für diese Ports.Service Fabric uses these ports whenever new ports are required and takes care of opening the firewall for these ports.
  • „reverseProxyEndpointPort“ ist ein optionaler Reverseproxy-Endpunkt.reverseProxyEndpointPort is an optional reverse proxy endpoint. Weitere Informationen finden Sie unter Service Fabric-Reverseproxy.For more information, see Service Fabric reverse proxy.

ProtokolleinstellungenLog settings

Im Abschnitt „fabricSettings“ können Sie die Stammverzeichnisse für die Service Fabric-Daten und -Protokolle festlegen.In the fabricSettings section, you can set the root directories for the Service Fabric data and logs. Sie können diese Verzeichnisse nur während der erstmaligen Clustererstellung anpassen.You can customize these directories only during the initial cluster creation. Informationen hierzu finden Sie auch im Codeausschnitt dieses Abschnitts, der als Beispiel dient:See the following sample snippet of this section:

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

Es wird empfohlen, dass Sie ein Nicht-Betriebssystem-Laufwerk als FabricDataRoot und FabricLogRoot verwenden.We recommend that you use a non-OS drive as the FabricDataRoot and FabricLogRoot. Er bietet höhere Zuverlässigkeit, wenn es darum geht, Situationen zu vermeiden, in denen das Betriebssystem nicht mehr reagiert.It provides more reliability in avoiding situations when the OS stops responding. Wenn Sie nur das Stammverzeichnis für die Daten anpassen, wird das Stammverzeichnis für die Protokolle genau eine Ebene unterhalb des Stammverzeichnisses für die Daten angesiedelt.If you customize only the data root, the log root is placed one level below the data root.

Einstellungen für zustandsbehaftete Reliable ServicesStateful Reliable Services settings

Im Abschnitt „KtlLogger“ können Sie die globalen Konfigurationseinstellungen für Reliable Services festlegen.In the KtlLogger section, you can set the global configuration settings for Reliable Services. Weitere Informationen zu diesen Einstellungen finden Sie unter Konfigurieren zustandsbehafteter Reliable Services.For more information on these settings, see Configure Stateful Reliable Services. Im folgenden Beispiel wird gezeigt, wie Sie das freigegebene Transaktionsprotokoll ändern, das als Unterstützung für zuverlässige Sammlungen für zustandsbehaftete Dienste erstellt wird:The following example shows how to change the shared transaction log that gets created to back any reliable collections for stateful services:

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

Add-On-FunktionenAdd-on features

Um Add-on-Funktionen zu konfigurieren, konfigurieren Sie die API-Version als „04-2017“ oder höher, und konfigurieren Sie „addonFeatures“, so wie hier gezeigt:To configure add-on features, configure the apiVersion as 04-2017 or higher, and configure the addonFeatures as shown here:

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

Alle verfügbaren Add-On-Features finden Sie in der Referenz zur Service Fabric-REST-API.All available add-on features can be seen in the Service Fabric REST API Reference.

ContainerunterstützungContainer support

Um bei eigenständigen Clustern die Containerunterstützung sowohl für Windows Server-Container als auch für Hyper-V-Container zu aktivieren, muss das Add-on-Feature von „DnsService“ aktiviert sein.To enable container support for both Windows Server containers and Hyper-V containers for standalone clusters, the DnsService add-on feature must be enabled.

Nächste SchritteNext steps

Nachdem Sie die ClusterConfig.json-Datei gemäß dem Setup Ihres eigenständigen Clusters vollständig konfiguriert haben, können Sie den Cluster bereitstellen.After you have a complete ClusterConfig.json file configured according to your standalone cluster setup, you can deploy your cluster. Befolgen Sie die Schritte unter Erstellen eines eigenständigen Azure Service Fabric-Clusters.Follow the steps in Create a standalone Service Fabric cluster.

Wenn Sie einen eigenständigen Cluster bereitgestellt haben, können Sie auch die Konfiguration eines eigenständigen Clusters aktualisieren.If you have a stand alone cluster deployed, you can also upgrade the configuration of a standalone cluster.

Unter Visualisieren Ihres Clusters mit Service Fabric Explorer ist die entsprechende Vorgehensweise beschrieben.Learn how to visualize your cluster with Service Fabric Explorer.