Impostazioni di configurazione per un cluster autonomo in WindowsConfiguration settings for a standalone Windows cluster

Questo articolo descrive come configurare un cluster autonomo di Azure Service Fabric usando il file ClusterConfig.json.This article describes how to configure a standalone Azure Service Fabric cluster by using the ClusterConfig.json file. Questo file verrà usato per specificare informazioni sui nodi del cluster, le configurazioni di sicurezza, nonché la topologia di rete in termini di domini di errore e di aggiornamento.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.

Quando si scarica il pacchetto di Service Fabric autonomo, sono disponibili anche gli esempi di ClusterConfig.json.When you download the standalone Service Fabric package, ClusterConfig.json samples are also included. I campioni i cui nomi contengono "DevCluster" creano un cluster con tutti e tre i nodi nello stesso computer, usando nodi logici.The samples that have "DevCluster" in their names create a cluster with all three nodes on the same machine, using logical nodes. Almeno uno di questi nodi deve essere contrassegnato come primario.Out of these nodes, at least one must be marked as a primary node. Questo tipo di cluster è utile per gli ambienti di sviluppo o test.This type of cluster is useful for development or test environments. Non è supportato come cluster di produzione.It is not supported as a production cluster. I campioni i cui nomi contengono "MultiMachine" creano un cluster di grado di produzione, in cui ogni nodo si trova in un computer separato.The samples that have "MultiMachine" in their names help create production grade clusters, with each node on a separate machine. Il numero di nodi primari per i cluster si basa sul livello di affidabilità del cluster stesso.The number of primary nodes for these clusters is based on the cluster's reliability level. Nella versione 05-2017 dell'API 5.7 la proprietà del livello di affidabilità è stata rimossa.In release 5.7, API Version 05-2017, we removed the reliability-level property. Il codice calcola invece il livello di affidabilità ottimale per il cluster.Instead, our code calculates the most optimized reliability level for your cluster. Non tentare di impostare un valore per questa proprietà nelle versioni a partire dalla 5.7.Do not try to set a value for this property in versions 5.7 onwards.

  • ClusterConfig.Unsecure.DevCluster.json e ClusterConfig.Unsecure.MultiMachine.json mostrano rispettivamente come creare cluster senza protezione per test e produzione.ClusterConfig.Unsecure.DevCluster.json and ClusterConfig.Unsecure.MultiMachine.json show how to create an unsecured test or production cluster, respectively.

  • ClusterConfig.Windows.DevCluster.jsob e ClusterConfig.Windows.MultiMachine.json mostrano come creare cluster di test o produzione protetti tramite sicurezza di Windows.ClusterConfig.Windows.DevCluster.json and ClusterConfig.Windows.MultiMachine.json show how to create test or production clusters that are secured by using Windows security.

  • ClusterConfig.X509.DevCluster.json e ClusterConfig.X509.MultiMachine.json mostrano come creare cluster di test o produzione protetti tramite sicurezza basata su certificato X509.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.

Verranno esaminate ora le diverse sezioni di un file ClusterConfig.json.Now let's examine the various sections of a ClusterConfig.json file.

Configurazioni generali del clusterGeneral cluster configurations

Le Configurazioni generali del cluster comprendono le ampie configurazioni specifiche del cluster, come illustrato nel frammento JSON seguente: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",

È possibile attribuire qualsiasi nome descrittivo al cluster di Service Fabric assegnandolo alla variabile name.You can give any friendly name to your Service Fabric cluster by assigning it to the name variable. Il clusterConfigurationVersion è il numero di versione del cluster.The clusterConfigurationVersion is the version number of your cluster. Aumentarlo ogni volta che si esegue l'aggiornamento del cluster di Service Fabric.Increase it every time you upgrade your Service Fabric cluster. Lasciare la proprietà apiVersion impostata sul valore predefinito.Leave apiVersion set to the default value.

Nodi del clusterNodes on the cluster

<a id="clusternodes"></a>

È possibile configurare i nodi nel cluster di Service Fabric tramite la sezione nodes, come illustrato nel frammento seguente: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"
}],

Un cluster di Service Fabric deve contenere almeno 3 nodi.A Service Fabric cluster must contain at least three nodes. È possibile aggiungere più nodi a questa sezione in base alla configurazione.You can add more nodes to this section according to your setup. La tabella seguente illustra le impostazioni di configurazione per ogni nodo:The following table explains configuration settings for each node:

Configurazione nodoNode configuration DescrizioneDescription
nodeNamenodeName È possibile assegnare qualsiasi nome descrittivo al nodo.You can give any friendly name to the node.
iPAddressiPAddress Trovare l'indirizzo IP del nodo aprendo una finestra di comando e digitando ipconfig.Find out the IP address of your node by opening a command window and typing ipconfig. Prendere nota dell'indirizzo IPV4 e assegnarlo alla variabile iPAddress.Note the IPV4 address, and assign it to the iPAddress variable.
nodeTypeRefnodeTypeRef È possibile assegnare un tipo diverso a ogni nodo.Each node can be assigned a different node type. I tipi di nodo sono definiti nella sezione seguente.The node types are defined in the following section.
faultDomainfaultDomain I domini di errore consentono agli amministratori del cluster di definire i nodi fisici su cui è probabile che si verifichino contemporaneamente degli errori a causa di dipendenze fisiche condivise.Fault domains enable cluster administrators to define the physical nodes that might fail at the same time due to shared physical dependencies.
upgradeDomainupgradeDomain I domini di aggiornamento descrivono set di nodi che vengono arrestati per gli aggiornamenti di Service Fabric quasi contemporaneamente.Upgrade domains describe sets of nodes that are shut down for Service Fabric upgrades at about the same time. È possibile scegliere i nodi da assegnare a determinati domini di aggiornamento perché non sono limitati da eventuali requisiti fisici.You can choose which nodes to assign to which upgrade domains, because they aren't limited by any physical requirements.

Proprietà del clusterCluster properties

La sezione properties in ClusterConfig.json viene usata per configurare il cluster come indicato di seguito:The properties section in the ClusterConfig.json is used to configure the cluster as shown:

AffidabilitàReliability

Il concetto di reliabilityLevel definisce il numero di repliche o istanze dei servizi di sistema di Service Fabric eseguibili nei nodi primari del cluster.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. Determina l'affidabilità di questi servizi e quindi del cluster.It determines the reliability of these services and hence the cluster. Il valore viene calcolato dal sistema in fase di creazione e di aggiornamento del cluster.The value is calculated by the system at cluster creation and upgrade time.

<a id="reliability"></a>

DiagnosticaDiagnostics

La sezione diagnosticsStore consente di configurare i parametri per consentire la diagnostica e la risoluzione degli errori di nodi o cluster, come illustrato nel frammento riportato di seguito: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"
}

La variabile metadata descrive la diagnostica del cluster e può essere impostata in base alla configurazione in uso.The metadata is a description of your cluster diagnostics and can be set according to your setup. Queste variabili consentono di raccogliere log di traccia ETW, dump di arresto anomalo e contatori delle prestazioni.These variables help in collecting ETW trace logs and crash dumps as well as performance counters. Per altre informazioni sui log di traccia ETW, leggere gli articoli Tracelog e Traccia ETW.For more information on ETW trace logs, see Tracelog and ETW tracing. Tutti i log che includono dump di arresto anomalo e contatori delle prestazioni possono essere indirizzati alla cartella connectionString nel computer.All logs, including crash dumps and performance counters, can be directed to the connectionString folder on your machine. È inoltre possibile usare AzureStorage per l'archiviazione di diagnostica.You also can use AzureStorage to store diagnostics. Vedere il frammento di esempio seguente: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]"
}

SicurezzaSecurity

La sezione security è necessaria per la protezione di un cluster di Service Fabric autonomo.The security section is necessary for a secure standalone Service Fabric cluster. Il frammento seguente mostra una parte di questa sezione:The following snippet shows a part of this section:

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

La variabile metadata descrive il cluster protetto e può essere impostata in base alla configurazione in uso.The metadata is a description of your secure cluster and can be set according to your setup. ClusterCredentialType e ServerCredentialType determinano il tipo di protezione implementata dal cluster e dai nodi.The ClusterCredentialType and ServerCredentialType determine the type of security that the cluster and the nodes implement. È possibile impostarle su X509 per una protezione basata su certificato o su Windows per una protezione basata su Azure Active Directory.They can be set to either X509 for a certificate-based security or Windows for Azure Active Directory-based security. Il resto della sezione security sarà basato sul tipo di protezione.The rest of the security section is based on the type of security. Leggere l'articolo sulla sicurezza basata su certificati in un cluster autonomo o sulla sicurezza di Windows in un cluster autonomo per informazioni su come compilare il resto della sezione security.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.

Tipi di nodiNode types

<a id="nodetypes"></a>

La sezione nodeTypes descrive il tipo di nodi del cluster.The nodeTypes section describes the type of nodes that your cluster has. Per ogni cluster deve essere specificato almeno un tipo di nodo, come illustrato nel frammento riportato di seguito: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
}]

name è il nome descrittivo per questo tipo di nodo particolare.The name is the friendly name for this particular node type. Per creare un nodo di questo tipo, assegnare il nome descrittivo alla variabile nodeTypeRef per tale nodo, come indicato in precedenza.To create a node of this node type, assign its friendly name to the nodeTypeRef variable for that node, as previously mentioned. Per ogni tipo di nodo, definire gli endpoint di connessione usati.For each node type, define the connection endpoints that are used. È possibile scegliere qualsiasi numero di porta per gli endpoint di connessione, purché non entrino in conflitto con altri endpoint in questo cluster.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 un cluster multinodo saranno presenti uno o più nodi primari (ad esempio isPrimary impostato su true), in base a reliabilityLevel.In a multinode cluster, there are one or more primary nodes (that is, isPrimary is set to true), depending on the reliabilityLevel. Per informazioni su nodeTypes e reliabilityLevel e per sapere quali sono i tipi di nodo primari e non primari, vedere Considerazioni sulla pianificazione della capacità del cluster Service Fabric.To learn more about primary and nonprimary node types, see Service Fabric cluster capacity planning considerations for information on nodeTypes and reliabilityLevel.

Endpoint usati per configurare i tipi di nodiEndpoints used to configure the node types

  • clientConnectionEndpointPort è la porta usata dal client per connettersi al cluster quando si usano le API del client.clientConnectionEndpointPort is the port used by the client to connect to the cluster when client APIs are used.
  • clusterConnectionEndpointPort è la porta in cui i nodi comunicano tra loro.clusterConnectionEndpointPort is the port where the nodes communicate with each other.
  • leaseDriverEndpointPort è la porta usata dal driver di lease del cluster per scoprire se i nodi sono ancora attivi.leaseDriverEndpointPort is the port used by the cluster lease driver to find out if the nodes are still active.
  • serviceConnectionEndpointPort è la porta usata da applicazioni e servizi distribuiti in un nodo, per comunicare con il client di Service Fabric in quel determinato nodo.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 è la porta usata da Service Fabric Explorer per connettersi al cluster.httpGatewayEndpointPort is the port used by Service Fabric Explorer to connect to the cluster.
  • Le porte ephemeralPorts eseguono l'override delle porte dinamiche usate dal sistema operativo.ephemeralPorts override the dynamic ports used by the OS. Service Fabric usa una parte di queste porte dell'applicazione, mentre le rimanenti sono a disposizione del sistema operativo.Service Fabric uses a part of these ports as application ports, and the remaining are available for the OS. Inoltre esegue il mapping di questo intervallo nell'intervallo presente nel sistema operativo, quindi per tutti gli scopi è possibile usare gli intervalli forniti nei file JSON campione.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. È necessario assicurarsi che la differenza tra la porta iniziale e la porta finale sia almeno 255.Make sure that the difference between the start and the end ports is at least 255. Questo intervallo è condiviso con il sistema operativo e possono quindi verificarsi dei conflitti se la differenza è troppo bassa.You might run into conflicts if this difference is too low, because this range is shared with the OS. Per visualizzare l'intervallo di porte dinamiche configurato, eseguire il comando netsh int ipv4 show dynamicport tcp.To see the configured dynamic port range, run netsh int ipv4 show dynamicport tcp.
  • applicationPorts sono le porte che verranno usate dalle applicazioni di Service Fabric.applicationPorts are the ports that are used by the Service Fabric applications. L'intervallo di porte dell'applicazione deve essere abbastanza grande da soddisfare il requisito di endpoint delle applicazioni.The application port range should be large enough to cover the endpoint requirement of your applications. Questo intervallo deve essere esclusivo dall'intervallo di porte dinamico del computer, ad esempio l'intervallo ephemeralPorts impostato nella configurazione.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 usa queste porte tutte le volte che servono nuove porte e si occupa di aprire i relativi firewall.Service Fabric uses these ports whenever new ports are required and takes care of opening the firewall for these ports.
  • reverseProxyEndpointPort è un endpoint proxy inverso facoltativo.reverseProxyEndpointPort is an optional reverse proxy endpoint. Per altre informazioni, vedere Proxy inverso di Service Fabric.For more information, see Service Fabric reverse proxy.

Impostazioni logLog settings

La sezione fabricSettings consente di impostare le directory radice per i log e i dati di Service Fabric.In the fabricSettings section, you can set the root directories for the Service Fabric data and logs. È possibile personalizzarle solo durante la creazione del cluster iniziale.You can customize these directories only during the initial cluster creation. Vedere il frammento di esempio seguente di questa sezione: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"
}]

È consigliabile usare un'unità non del sistema operativo come FabricDataRoot e FabricLogRoot.We recommend that you use a non-OS drive as the FabricDataRoot and FabricLogRoot. Fornisce maggiore affidabilità nell'evitare situazioni in cui il sistema operativo non risponde.It provides more reliability in avoiding situations when the OS stops responding. Si noti che se si personalizza solo la radice dei dati, la radice del log viene inserita un livello sotto la radice dei dati.If you customize only the data root, the log root is placed one level below the data root.

Impostazioni dei Reliable Services con statoStateful Reliable Services settings

La sezione KtlLogger consente di effettuare le impostazioni di configurazione globali per i Reliable Services.In the KtlLogger section, you can set the global configuration settings for Reliable Services. Per altre informazioni su queste impostazioni leggere Configurazione di servizi Reliable Services con stato.For more information on these settings, see Configure Stateful Reliable Services. L'esempio seguente illustra come modificare il log delle transazioni condiviso creato per eseguire il backup di eventuali raccolte affidabili per i servizi con stato: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"
    }]
}]

Funzionalità aggiuntiveAdd-on features

Per configurare le funzioni aggiuntive, l'impostazione di apiVersion deve essere 04-2017 o versione successiva ed è necessario configurare addonFeatures: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"
  ]
}

Supporto dei contenitoriContainer support

Per abilitare il supporto dei contenitori sia per i contenitori di Windows Server che per i contenitori di Hyper-V per i cluster autonomi, deve essere attivata la funzionalità aggiuntiva DnsService.To enable container support for both Windows Server containers and Hyper-V containers for standalone clusters, the DnsService add-on feature must be enabled.

Passaggi successiviNext steps

Dopo aver creato un file ClusterConfig.json completo, configurato in base all'impostazione cluster autonomo, è possibile distribuire il cluster.After you have a complete ClusterConfig.json file configured according to your standalone cluster setup, you can deploy your cluster. Eseguire la procedura in Creare un cluster autonomo di Service Fabric.Follow the steps in Create a standalone Service Fabric cluster. Procedere quindi con Visualizzare il cluster con Service Fabric Explorer e seguire i passaggi.Then proceed to Visualize your cluster with Service Fabric Explorer and follow the steps.