Pianificare e preparare la distribuzione del cluster autonomo di Service FabricPlan and prepare your Service Fabric Standalone cluster deployment

I passaggi seguenti devono essere eseguiti prima di creare il cluster.Perform the following steps before you create your cluster.

Pianificazione dell'infrastruttura del clusterPlan your cluster infrastructure

Prima di creare un cluster di Service Fabric sui propri computer, è possibile stabilire da quali tipi di errore il cluster non deve essere compromesso.You are about to create a Service Fabric cluster on machines you "own", so you can decide what kinds of failures you want the cluster to survive. Ad esempio, sono necessarie linee di alimentazione o connessioni Internet separate per queste macchine?For example, do you need separate power lines or Internet connections supplied to these machines? È necessario inoltre considerare la sicurezza fisica di tali macchine.In addition, consider the physical security of these machines. Dove si trovano le macchine e chi ha bisogno di accedervi?Where are the machines located and who needs access to them? Dopo aver preso queste decisioni, è possibile eseguire il mapping logico delle macchine ai vari domini di errore (vedere il passaggio successivo).After you make these decisions, you can logically map the machines to various fault domains (see next step). La pianificazione dell'infrastruttura per i cluster di produzione è più complicata rispetto ai cluster di test.The infrastructure planning for production clusters is more involved than for test clusters.

Identificazione del numero di domini di errore e di aggiornamentoDetermine the number of fault domains and upgrade domains

Un dominio di errore è un'unità fisica di errore ed è direttamente correlato all'infrastruttura fisica nei data center.A fault domain (FD) is a physical unit of failure and is directly related to the physical infrastructure in the data centers. È costituito da componenti hardware (computer, commutatori, rete e altro) che condividono un singolo punto di guasto.A fault domain consists of hardware components (computers, switches, networks, and more) that share a single point of failure. Sebbene non sia presente una mappatura 1:1 tra domini di errore e rack, ogni rack può essere considerato in senso lato un dominio di errore.Although there is no 1:1 mapping between fault domains and racks, loosely speaking, each rack can be considered a fault domain.

Quando si specificano domini di errore nel file ClusterConfig.json, è possibile scegliere il nome di ogni dominio di errore.When you specify FDs in ClusterConfig.json, you can choose the name for each FD. Il Service Fabric supporta i domini di errore gerarchici, in modo che possano rispecchiare la topologia infrastrutturale.Service Fabric supports hierarchical FDs, so you can reflect your infrastructure topology in them. Di seguito sono riportati esempi di domini di errore validi:For example, the following FDs are valid:

  • "faultDomain": "fd:/Room1/Rack1/Machine1""faultDomain": "fd:/Room1/Rack1/Machine1"
  • "faultDomain": "fd:/FD1""faultDomain": "fd:/FD1"
  • "faultDomain": "fd:/Room1/Rack1/PDU1/M1""faultDomain": "fd:/Room1/Rack1/PDU1/M1"

Un dominio di aggiornamento è un'unità logica di nodi.An upgrade domain (UD) is a logical unit of nodes. Durante gli aggiornamenti orchestrati di Service Fabric (di applicazione o cluster), tutti i nodi in un dominio di aggiornamento vengono disattivati per eseguire l'aggiornamento, mentre i nodi in altri domini di aggiornamento rimangono disponibili per gestire le richieste.During Service Fabric orchestrated upgrades (either an application upgrade or a cluster upgrade), all nodes in a UD are taken down to perform the upgrade while nodes in other UDs remain available to serve requests. Gli aggiornamenti del firmware sulle macchine non rispettano i domini di aggiornamento ed è pertanto necessario eseguirli su una macchina alla volta.The firmware upgrades you perform on your machines do not honor UDs, so you must do them one machine at a time.

Il metodo più semplice per descrivere questi concetti è considerare i domini di errore come unità degli errori imprevisti e i domini di aggiornamento come unità della manutenzione pianificata.The simplest way to think about these concepts is to consider FDs as the unit of unplanned failure and UDs as the unit of planned maintenance.

Quando si specificano domini di aggiornamento nel file ClusterConfig.json è possibile scegliere il nome di ogni dominio di aggiornamento.When you specify UDs in ClusterConfig.json, you can choose the name for each UD. Di seguito sono riportati esempi di nomi validi:For example, the following names are valid:

  • "upgradeDomain": "UD0""upgradeDomain": "UD0"
  • "upgradeDomain": "UD1A""upgradeDomain": "UD1A"
  • "upgradeDomain": "DomainRed""upgradeDomain": "DomainRed"
  • "upgradeDomain": "Blue""upgradeDomain": "Blue"

Per informazioni più dettagliate sui domini di aggiornamento e di errore, vedere Descrizione di un cluster di Service Fabric.For more detailed information on FDs and UDs, see Describing a Service Fabric cluster.

Affinché sia supportato in un ambiente di produzione, in un cluster di produzione devono essere configurati almeno tre domini di errore, se si ha il controllo completo sui nodi di manutenzione e gestione, ad esempio si è responsabili dell'aggiornamento e della sostituzione dei computer.A cluster in production should span at least three FDs in order to be supported in a production environment, if you have full control over the maintenance and management of the nodes, i.e. you are responsible for updating and replacing machines. Per i cluster in esecuzione in ambienti come le istanze di macchine virtuali di Amazon Web Services, in cui non si ha il controllo completo sui computer, il cluster deve prevedere un minimo di cinque domini di errore.For clusters running in environments (i.e. Amazon Web Services VM instances) where you do not have full control over the machines, you should have a minimum of five FDs in your cluster. Ogni dominio di errore può presentare uno o più nodi.Each FD can have one or more nodes. Ciò evita i problemi causati dall'aggiornamento dei computer che, a seconda della durata, può interferire con l'esecuzione di applicazioni e servizi nel cluster.This is to prevent issues caused by machine upgrades and updates which, depending on their timing, can intefere with the running of applications and services in clusters.

Determinare le dimensioni iniziali del clusterDetermine the initial cluster size

In genere, il numero di nodi nel cluster è determinato in base alle esigenze aziendali, ad esempio il numero di servizi e i contenitori che vengono eseguiti nel cluster e il volume di risorse necessarie a sostenere i carichi di lavoro.Generally, the number of nodes in your cluster is determined based on your business needs, i.e., how many services and containers will be running on the cluster and how many resources do you need to sustain your workloads. Nei cluster di produzione è consigliabile configurare almeno cinque nodi nel cluster, estesi su cinque domini di errore.For production clusters, we recommend having at least 5 nodes in your cluster, spanning 5 FDs. Tuttavia, come descritto prima, se si ha il controllo completo sui nodi e un'estensione su almeno tre domini di errore, tre nodi possono essere sufficienti.However, as described above, if you have full control over your nodes and can span three FDs, then three nodes should also do the job.

Nei cluster di test che eseguono carichi di lavoro con stato è consigliabile configurare almeno tre nodi, mentre i cluster di test che eseguono solo carichi di lavoro senza stato richiedono un solo nodo.Test clusters running stateful workloads should have three nodes, whereas test clusters only running stateless workloads only need one node. Va inoltre sottolineato che, a scopo di sviluppo, è possibile configurare più di un nodo in un computer specifico.It should also be noted that for development purposes, you can have more than one node on a given machine. In un ambiente di produzione Service Fabric supporta solo un nodo per ogni macchina virtuale o fisica.In a production environment however, Service Fabric supports only one node per physical or virtual machine.

Preparare i computer che fungono da nodiPrepare the machines that will serve as nodes

Di seguito sono indicate le specifiche per ogni computer da aggiungere al cluster:Here are some recommended specs for each machine that you want to add to the cluster:

L'amministratore del cluster che distribuisce e configura il cluster deve disporre dei privilegi di amministratore in ogni computer.The cluster administrator deploying and configuring the cluster must have administrator privileges on each of the machines. Non è possibile installare Service Fabric in un controller di dominio.You cannot install Service Fabric on a domain controller.

Scaricare il pacchetto autonomo Service Fabric per Windows ServerDownload the Service Fabric standalone package for Windows Server

Collegamento per il download - Pacchetto autonomo di Service Fabric - Windows Server; decomprimere il pacchetto in un computer di distribuzione non appartenente al cluster o in uno dei computer che faranno parte del cluster.Download Link - Service Fabric Standalone Package - Windows Server and unzip the package, either to a deployment machine that is not part of the cluster, or to one of the machines that will be a part of your cluster.

Modificare la configurazione del clusterModify cluster configuration

Per creare un cluster autonomo, è necessario creare un file ClusterConfig.json di configurazione del cluster autonomo che descrive la specifica del cluster.To create a standalone cluster you have to create a standalone cluster configuration ClusterConfig.json file, which describes the specification of the cluster. È possibile basare il file di configurazione sui modelli disponibili nel collegamento seguente.You can base the configuration file on the templates found at the below link.
Configurazioni di cluster autonomi Standalone Cluster Configurations

Per informazioni dettagliate sulle sezioni di tale file, vedere Impostazioni di configurazione per un cluster autonomo in Windows.For details on the sections in this file, see Configuration settings for standalone Windows cluster.

Aprire uno dei file ClusterConfig.json del pacchetto scaricato e modificare le impostazioni seguenti:Open one of the ClusterConfig.json files from the package you downloaded and modify the following settings:

Impostazioni di configurazioneConfiguration Setting DescrizioneDescription
NodeTypesNodeTypes I tipi di nodo permettono di separare i nodi del cluster in diversi gruppi.Node types allow you to separate your cluster nodes into various groups. Un cluster deve avere almeno un NodeType.A cluster must have at least one NodeType. Tutti i nodi in un gruppo possiedono le seguenti caratteristiche comuni: All nodes in a group have the following common characteristics:
Nome : il nome del tipo di nodo.Name - This is the node type name.
Porte di endpoint : endpoint con nomi diversi (porte) associati a questo tipo di nodo.Endpoint Ports - These are various named end points (ports) that are associated with this node type. È possibile usare qualsiasi numero di porta desiderato, purché non entri in conflitto con qualsiasi altro nel manifesto e non sia già utilizzato da un'altra applicazione eseguita nel computer/VM.You can use any port number that you wish, as long as they do not conflict with anything else in this manifest and are not already in use by any other application running on the machine/VM.
Proprietà di posizionamento: descrivono proprietà per questo tipo di nodo usate come vincoli di posizionamento per i servizi di sistema o i servizi dell'utente.Placement Properties - These describe properties for this node type that you use as placement constraints for the system services or your services. Queste proprietà sono coppie chiave-valore definite dall'utente che forniscono metadati aggiuntivi per un determinato nodo.These properties are user-defined key/value pairs that provide extra meta data for a given node. Le proprietà del nodo possono includere ad esempio la presenza di un disco rigido o di una scheda grafica, il numero di spindle nel disco rigido, le memorie centrali e altre proprietà fisiche.Examples of node properties would be whether the node has a hard drive or graphics card, the number of spindles in its hard drive, cores, and other physical properties.
Capacità : le capacità del nodo definiscono il nome e la quantità di una particolare risorsa utilizzabile da parte di un determinato nodo.Capacities - Node capacities define the name and amount of a particular resource that a particular node has available for consumption. Ad esempio, un nodo può definire la propria capacità per una metrica denominata "MemoryInMb" con un valore predefinito di 2048 MB di memoria disponibile.For example, a node may define that it has capacity for a metric called “MemoryInMb” and that it has 2048 MB available by default. Queste capacità vengono usate in fase di esecuzione per garantire che i servizi che richiedono una determinata quantità di risorse vengano inseriti nei nodi in cui tali risorse sono disponibili nelle quantità richieste.These capacities are used at runtime to ensure that services that require particular amounts of resources are placed on the nodes that have those resources available in the required amounts.
IsPrimary : se sono definiti più NodeType, verificare che solo uno sia impostato come primario, con il valore true, ovvero quello in cui vengono eseguiti i servizi di sistema.IsPrimary - If you have more than one NodeType defined ensure that only one is set to primary with the value true, which is where the system services run. Tutti gli altri tipi di nodo devono essere impostati sul valore falseAll other node types should be set to the value false
NodiNodes Questi sono i dettagli per ciascun nodo che farà parte del cluster (tipo di nodo, nome del nodo, indirizzo IP, dominio di errore e dominio di aggiornamento del nodo).These are the details for each of the nodes that are part of the cluster (node type, node name, IP address, fault domain, and upgrade domain of the node). I computer in cui si vuole creare il cluster devono essere elencati in questa sezione con il relativo indirizzo IP.The machines you want the cluster to be created on need to be listed here with their IP addresses.
Se si usa lo stesso indirizzo IP per tutti i nodi, viene creato un cluster di una casella che può essere usato per scopi di test.If you use the same IP address for all the nodes, then a one-box cluster is created, which you can use for testing purposes. Non usare cluster di una casella per la distribuzione dei carichi di lavoro di produzione.Do not use One-box clusters for deploying production workloads.

Dopo che tutte le impostazioni sono state configurate per l'ambiente nella configurazione del cluster, è possibile eseguire il test nell'ambiente del cluster (passaggio 7).After the cluster configuration has had all settings configured to the environment, it can be tested against the cluster environment (step 7).

Configurazione dell'ambienteEnvironment setup

Quando un amministratore di cluster configura un cluster autonomo di Service Fabric, l'ambiente deve essere configurato con i criteri seguenti:When a cluster administrator configures a Service Fabric standalone cluster, the environment needs to be set up with the following criteria:

  1. L'utente che ha creato il cluster deve disporre dei privilegi di sicurezza a livello di amministratore per tutti i computer elencati come nodi nel file di configurazione del cluster.The user creating the cluster should have administrator-level security privileges to all machines that are listed as nodes in the cluster configuration file.
  2. Il computer da cui viene creato il cluster e ogni computer del nodo del cluster devono rispettare i requisiti seguenti:Machine from which the cluster is created, as well as each cluster node machine must:
  3. Service Fabric SDK non installatoHave Service Fabric SDK uninstalled
  4. Runtime di Service Fabric non installatoHave Service Fabric runtime uninstalled
  5. Servizio Windows Firewall (mpssvc) abilitatoHave the Windows Firewall service (mpssvc) enabled
  6. Servizio Registro di sistema remoto (remoteregistry) abilitatoHave the Remote Registry Service (remoteregistry) enabled
  7. Condivisione file (SMB) abilitataHave file sharing (SMB) enabled
  8. Porte aperte necessarie in base alle porte di configurazione del clusterHave necessary ports opened, based on cluster configuration ports
  9. Porte aperte necessarie per il servizio Registro di sistema remoto e Windows SMB: 135, 137, 138, 139 e 445Have necessary ports opened for Windows SMB and Remote Registry service: 135, 137, 138, 139, and 445
  10. Connettività di rete reciprocaHave network connectivity to one another
  11. Nessuna delle macchine ai nodi del cluster deve essere un controller di dominio.None of the cluster node machines should be a Domain Controller.
  12. Se il cluster da distribuire è protetto, convalidare che i prerequisiti di sicurezza necessari siano corretti e che siano stati configurati correttamente in base alla configurazione.If the cluster to be deployed is a secure cluster, validate the necessary security prerequisites are in place, and are configured correctly against the configuration.
  13. Se i computer del cluster non sono accessibili da Internet, impostare quanto segue nella configurazione del cluster:If the cluster machines are not internet-accessible, set the following in the cluster configuration:
  14. Disabilitare la telemetria: in properties impostare "enableTelemetry": falseDisable telemetry: Under properties set "enableTelemetry": false
  15. Disabilitare le notifiche e il download automatici della versione di Service Fabric relativi alla condizione che la versione corrente del cluster sta per raggiungere il termine del supporto: in properties impostare "fabricClusterAutoupgradeEnabled": falseDisable automatic Fabric version downloading & notifications that the current cluster version is nearing end of support: Under properties set "fabricClusterAutoupgradeEnabled": false
  16. In alternativa, se l'accesso a Internet dalla rete è limitato ai domini consentiti, è necessario l'aggiornamento automatico dei domini seguenti: go.microsoft.com download.microsoft.comAlternatively, if network internet access is limited to white-listed domains, the domains below are required for automatic upgrade: go.microsoft.com download.microsoft.com

  17. Impostare le esclusioni antivirus di Service Fabric appropriate:Set appropriate Service Fabric antivirus exclusions:

Directory escluse dall'antivirusAntivirus Excluded directories
Program Files\Microsoft Service FabricProgram Files\Microsoft Service Fabric
FabricDataRoot (dalla configurazione del cluster)FabricDataRoot (from cluster configuration)
FabricLogRoot (dalla configurazione del cluster)FabricLogRoot (from cluster configuration)
Processi esclusi dall'antivirusAntivirus Excluded processes
Fabric.exeFabric.exe
FabricHost.exeFabricHost.exe
FabricInstallerService.exeFabricInstallerService.exe
FabricSetup.exeFabricSetup.exe
FabricDeployer.exeFabricDeployer.exe
ImageBuilder.exeImageBuilder.exe
FabricGateway.exeFabricGateway.exe
FabricDCA.exeFabricDCA.exe
FabricFAS.exeFabricFAS.exe
FabricUOS.exeFabricUOS.exe
FabricRM.exeFabricRM.exe
FileStoreService.exeFileStoreService.exe

Convalidare l'ambiente con lo script TestConfigurationValidate environment using TestConfiguration script

Lo script TestConfiguration.ps1 è incluso nel pacchetto autonomo.The TestConfiguration.ps1 script can be found in the standalone package. Viene usato come Best Practices Analyzer per convalidare alcuni criteri indicati sopra e deve essere usato come verifica di integrità per convalidare se un cluster può essere distribuito in un determinato ambiente.It is used as a Best Practices Analyzer to validate some of the criteria above and should be used as a sanity check to validate whether a cluster can be deployed on a given environment. In caso di errore vedere l'elenco in Configurazione dell'ambiente per la risoluzione dei problemi.If there is any failure, refer to the list under Environment Setup for troubleshooting.

Questo script può essere eseguito su qualsiasi macchina con accesso amministrativo a tutte le macchine elencate come nodi nel file di configurazione del cluster.This script can be run on any machine that has administrator access to all the machines that are listed as nodes in the cluster configuration file. La macchina in cui viene eseguito lo script non deve necessariamente far parte del cluster.The machine that this script is run on does not have to be part of the cluster.

PS C:\temp\Microsoft.Azure.ServiceFabric.WindowsServer> .\TestConfiguration.ps1 -ClusterConfigFilePath .\ClusterConfig.Unsecure.DevCluster.json
Trace folder already exists. Traces will be written to existing trace folder: C:\temp\Microsoft.Azure.ServiceFabric.WindowsServer\DeploymentTraces
Running Best Practices Analyzer...
Best Practices Analyzer completed successfully.


LocalAdminPrivilege        : True
IsJsonValid                : True
IsCabValid                 : True
RequiredPortsOpen          : True
RemoteRegistryAvailable    : True
FirewallAvailable          : True
RpcCheckPassed             : True
NoConflictingInstallations : True
FabricInstallable          : True
Passed                     : True

Questo modulo di configurazione di test attualmente non convalida la configurazione della sicurezza; questa operazione deve essere eseguita in modo indipendente.Currently this configuration testing module does not validate the security configuration so this has to be done independently.

Nota

Apportiamo costantemente miglioramenti per ottimizzare il modulo; inviare eventuali suggerimenti tramite i canali del supporto se si individua un caso errato o mancante non rilevato attualmente da TestConfiguration.We are continually making improvements to make this module more robust, so if there is a faulty or missing case which you believe isn't currently caught by TestConfiguration, please let us know through our support channels.

Passaggi successiviNext steps