Planeamiento y preparación de la implementación de un clúster independiente de Service FabricPlan and prepare your Service Fabric Standalone cluster deployment

Realice los pasos siguientes antes de crear el clúster.Perform the following steps before you create your cluster.

Planear la infraestructura del clústerPlan your cluster infrastructure

Va a crear un clúster de Service Fabric en máquinas que "posee", por lo que podrá decidir qué tipos de errores desea que resista el clúster.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. Por ejemplo, ¿necesita separar redes eléctricas o conexiones a Internet que proporcionan estas máquinas?For example, do you need separate power lines or Internet connections supplied to these machines? Además, debe tener en cuenta la seguridad física de estas máquinas.In addition, consider the physical security of these machines. ¿Donde se encuentran las máquinas y quién tiene acceso a ellas?Where are the machines located and who needs access to them? Una vez que haya tomado estas decisiones, asigne las máquinas de manera lógica a los distintos dominios de error (consulte el siguiente paso).After you make these decisions, you can logically map the machines to various fault domains (see next step). El planeamiento de la infraestructura para clústeres de producción es más complicado que el de los clústeres de prueba.The infrastructure planning for production clusters is more involved than for test clusters.

Determinar el número de dominios de error y de actualizaciónDetermine the number of fault domains and upgrade domains

Un dominio de error (FD) es una unidad física de error y está directamente relacionado con la infraestructura física de los centros de datos.A fault domain (FD) is a physical unit of failure and is directly related to the physical infrastructure in the data centers. Un dominio de error consta de componentes de hardware (equipos, conmutadores, redes, etc.) que comparten un único punto de error.A fault domain consists of hardware components (computers, switches, networks, and more) that share a single point of failure. Aunque no hay ninguna asignación 1:1 entre dominios de error y racks, en términos generales, cada bastidor puede considerarse un dominio de error.Although there is no 1:1 mapping between fault domains and racks, loosely speaking, each rack can be considered a fault domain.

Si especifica dominios de error en ClusterConfig.json, puede elegir el nombre de cada uno.When you specify FDs in ClusterConfig.json, you can choose the name for each FD. Service Fabric admite FD jerárquicos, así que puede reflejar la topología de infraestructura en ellos.Service Fabric supports hierarchical FDs, so you can reflect your infrastructure topology in them. Por ejemplo, los siguientes FD son válidos: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 de actualización (UD) es una unidad lógica de nodos.An upgrade domain (UD) is a logical unit of nodes. Durante una actualización de Service Fabric organizada (una actualización de la aplicación o del clúster), todos los nodos de un UD se eliminan para llevar a cabo este proceso, mientras que los nodos de otros UD siguen estando disponibles para atender las solicitudes.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. Las actualizaciones de firmware que realice en las máquinas no respetan los UD, así que debe realizar este proceso de forma individual.The firmware upgrades you perform on your machines do not honor UDs, so you must do them one machine at a time.

La manera más sencilla de pensar en estos conceptos es considerar los FD como la unidad de error no planeada, y los UD, como la unidad de mantenimiento planeado.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.

Si especifica dominios de actualización en ClusterConfig.json, puede elegir el nombre de cada uno.When you specify UDs in ClusterConfig.json, you can choose the name for each UD. Por ejemplo, los siguientes nombres son válidos:For example, the following names are valid:

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

Para más información sobre los dominios de actualización y los dominios de error, consulte Descripción de un clúster de Service Fabric.For more detailed information on FDs and UDs, see Describing a Service Fabric cluster.

Un clúster en producción debe extender al menos tres FD para que se admita en un entorno de producción, si tiene control total sobre el mantenimiento y la administración de los nodos, es decir, usted es responsable de actualizar y reemplazar las máquinas.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, that is, you are responsible for updating and replacing machines. Para los clústeres que se ejecutan en entornos (por ejemplo, instancias de máquinas virtuales de Amazon Web Services) en los que no tiene control total sobre las máquinas, debe tener un mínimo de cinco FD en el clúster.For clusters running in environments (that is, 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. Cada FD puede tener uno o más nodos.Each FD can have one or more nodes. Esto es para evitar problemas causados por actualizaciones de máquinas que, dependiendo de su programación temporal, interfieran con la ejecución de aplicaciones y servicios en clúster.This is to prevent issues caused by machine upgrades and updates, which depending on their timing, can interfere with the running of applications and services in clusters.

Determinar el tamaño inicial del clústerDetermine the initial cluster size

Por lo general, el número de nodos del clúster se determina en función de las necesidades empresariales, por ejemplo, el número de servicios y contenedores que se ejecutarán en el clúster y la cantidad de recursos necesaria para admitir las cargas de trabajo.Generally, the number of nodes in your cluster is determined based on your business needs, that is, how many services and containers will be running on the cluster and how many resources do you need to sustain your workloads. Para los clústeres de producción, se recomienda tener al menos cinco nodos en el clúster, que expanden 5 FD.For production clusters, we recommend having at least five nodes in your cluster, spanning 5 FDs. Sin embargo, como se describió anteriormente, si tiene control total sobre los nodos y puede extender tres FD, tres nodos serán suficientes.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.

Los clústeres de prueba que ejecutan cargas de trabajo con estado deben tener tres nodos, mientras que los clústeres de prueba que solo ejecutan cargas de trabajo sin estado solamente necesitan un nodo.Test clusters running stateful workloads should have three nodes, whereas test clusters only running stateless workloads only need one node. Se debe también tener en cuenta que, para fines de desarrollo, puede tener más de un nodo en un equipo determinado.It should also be noted that for development purposes, you can have more than one node on a given machine. Sin embargo, en un entorno de producción, Service Fabric solo admite un nodo por máquina virtual o física.In a production environment however, Service Fabric supports only one node per physical or virtual machine.

Preparación de las máquinas que servirán como nodosPrepare the machines that will serve as nodes

Estas son las especificaciones recomendadas para las máquinas de un clúster de Service Fabric:Here are recommended specs for machines in a Service Fabric cluster:

  • Un mínimo de 16 GB de RAMA minimum of 16 GB of RAM
  • Un mínimo de 40 GB de espacio disponible en discoA minimum of 40 of GB available disk space
  • Una CPU de 4 núcleos o superiorA 4 core or greater CPU
  • Conectividad a una o varias redes seguras para todas las máquinasConnectivity to a secure network or networks for all machines
  • SO Windows Server instalado (versiones válidas: 2012 R2, 2016, 1709 o 1803).Windows Server OS installed (valid versions: 2012 R2, 2016, 1709, or 1803). La versión 6.4.654.9590 de Service Fabric y posteriores también admiten el servidor 2019 y 1809.Service Fabric version 6.4.654.9590 and later also supports Server 2019 and 1809.
  • .NET Framework 4.5.1 o posterior (instalación completa).NET Framework 4.5.1 or higher, full install
  • Windows PowerShell 3.0Windows PowerShell 3.0
  • El servicio RemoteRegistry se debe estar ejecutando en todas las máquinasThe RemoteRegistry service should be running on all the machines
  • La unidad de instalación de Service Fabric debe estar en el sistema de archivos NTFSService Fabric installation drive must be NTFS File System
  • Los servicios de Windows Registros y alertas de rendimiento y Registro de eventos de Windows deben estar habilitados .Windows services Performance Logs & Alerts and Windows Event Log must be enabled.

Importante

El administrador de clúster que implemente y configure el clúster debe tener privilegios de administrador en cada una de las máquinas.The cluster administrator deploying and configuring the cluster must have administrator privileges on each of the machines. No se puede instalar Service Fabric en un controlador de dominio.You cannot install Service Fabric on a domain controller.

Descarga del paquete independiente de Service Fabric para Windows ServerDownload the Service Fabric standalone package for Windows Server

Descargue el paquete independiente de Service Fabric para Windows Server y descomprímalo en una máquina de implementación que no forme parte del clúster, o bien en una de las máquinas que formarán parte del clúster.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.

Modificación de la configuración del clústerModify cluster configuration

Para crear un clúster independiente, debe crear un archivo ClusterConfig.json de configuración del clúster independiente, que describa la especificación del clúster.To create a standalone cluster you have to create a standalone cluster configuration ClusterConfig.json file, which describes the specification of the cluster. Puede basar el archivo de configuración en las plantillas que se encuentran en el siguiente vínculo.You can base the configuration file on the templates found at the below link.
Configuraciones de clúster independienteStandalone Cluster Configurations

Para ver detalles sobre las secciones de este archivo, vea Opciones de configuración de clústeres de Windows independientes.For details on the sections in this file, see Configuration settings for standalone Windows cluster.

Abra uno de los archivos ClusterConfig.json del paquete descargado y modifique las siguientes opciones:Open one of the ClusterConfig.json files from the package you downloaded and modify the following settings:

Opciones de configuración.Configuration Setting DescripciónDescription
NodeTypesNodeTypes Los tipos de nodo permiten separar los nodos de clúster en grupos distintos.Node types allow you to separate your cluster nodes into various groups. Un clúster debe tener al menos un tipo NodeType.A cluster must have at least one NodeType. Todos los nodos de un grupo tienen las siguientes características comunes:All nodes in a group have the following common characteristics:
nombre : es el nombre del tipo de nodo.Name - This is the node type name.
Endpoint Ports : diversos puntos de conexión (puertos) con nombre asociados a este tipo de nodo.Endpoint Ports - These are various named end points (ports) that are associated with this node type. Puede usar cualquier número de puerto que desee, siempre que no entren en conflicto con nada de este manifiesto y que no estén siendo usados por otra aplicación que se ejecute en el equipo o en la máquina virtual.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.
Propiedades de ubicación: Describen las propiedades de este tipo de nodo que se usan como restricciones de ubicación para los servicios del sistema o para sus servicios.Placement Properties - These describe properties for this node type that you use as placement constraints for the system services or your services. Estas propiedades son pares de clave y valor definidos por el usuario que proporcionan metadatos adicionales para un nodo determinado.These properties are user-defined key/value pairs that provide extra meta data for a given node. Algunos ejemplos de propiedades de nodo son si el nodo tiene una unidad de disco duro o una tarjeta gráfica, el número de ejes de la unidad de disco duro, los núcleos y otras propiedades físicas.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.
Capacities : las capacidades del nodo definen el nombre y la cantidad de un recurso concreto que un nodo tiene disponible para consumir.Capacities - Node capacities define the name and amount of a particular resource that a particular node has available for consumption. Por ejemplo, un nodo puede definir que tenga capacidad para una métrica llamada "MemoryInMb" y 2048 MB de memoria disponible de forma predeterminada.For example, a node may define that it has capacity for a metric called “MemoryInMb” and that it has 2048 MB available by default. Estas funcionalidades se usan en tiempo de ejecución para garantizar que los servicios que requieren una cantidad determinada de recursos se coloquen en nodos donde esos recursos estén disponibles en la cantidad necesaria.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 : si hay varias opciones NodeType definidas, asegúrese de establecer solo una como principal con el valor true; es donde se ejecutan los servicios del 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. Todos los demás tipos de nodo se deben establecer en falseAll other node types should be set to the value false
NodosNodes Se trata de los detalles de cada uno de los nodos que forman parte del clúster (tipo de nodo, nombre de nodo, dirección IP, dominio de error y dominio de actualización 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). Las máquinas en las que desee que se cree el clúster en función de las necesidades se mostrarán aquí con sus direcciones IP.The machines you want the cluster to be created on need to be listed here with their IP addresses.
Si usa la misma dirección IP para todos los nodos, se crea un clúster one-box, que puede usar con fines de prueba.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. No use clústeres one-box para implementar cargas de trabajo de producción.Do not use One-box clusters for deploying production workloads.

Después de que se han realizado todas las configuraciones del clúster de acuerdo con el entorno, se puede probar en el entorno del clúster (paso 7).After the cluster configuration has had all settings configured to the environment, it can be tested against the cluster environment (step 7).

Configuración del entornoEnvironment setup

Cuando un administrador de clústeres configura un clúster independiente de Service Fabric, es necesario configurar el entorno con los siguientes criterios:When a cluster administrator configures a Service Fabric standalone cluster, the environment needs to be set up with the following criteria:

  1. El usuario que crea el clúster debe tener privilegios de seguridad de nivel de administrador en todas las máquinas que se enumeran como nodos en el archivo de configuración del clúster.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. La máquina desde la que se crea el clúster, así como la máquina de cada nodo del clúster debe cumplir estos requisitos:Machine from which the cluster is created, as well as each cluster node machine must:

    • Tener desinstalado el SDK de Service FabricHave Service Fabric SDK uninstalled
    • tener desinstalado el entorno de tiempo de ejecución de Service FabricHave Service Fabric runtime uninstalled
    • Tener habilitado el servicio Firewall de Windows (mpssvc)Have the Windows Firewall service (mpssvc) enabled
    • Tener habilitado el servicio Remote Registry (registro remoto)Have the Remote Registry Service (remote registry) enabled
    • Tener habilitado el uso compartido de archivos (SMB)Have file sharing (SMB) enabled
    • Tener abiertos los puertos necesarios, según los puertos de configuración del clústerHave necessary ports opened, based on cluster configuration ports
    • Tener abiertos los puertos necesarios para Windows SMB y el servicio Registro remoto: 135, 137, 138, 139 y 445Have necessary ports opened for Windows SMB and Remote Registry service: 135, 137, 138, 139, and 445
    • Tener conectividad de red con otra máquinaHave network connectivity to one another
  3. Ninguna de las máquinas de nodo del clúster debe ser un controlador de dominio.None of the cluster node machines should be a Domain Controller.

  4. Si el clúster que se va a implementar es un clúster seguro, valide que los requisitos previos de seguridad necesarios estén implementados y que se ajusten a la configuración.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.

  5. Si las máquinas del clúster no son accesibles desde Internet, establezca lo siguiente en la configuración del clúster:If the cluster machines are not internet-accessible, set the following in the cluster configuration:

    • Deshabilite la telemetría: en Propiedades, establezca "enableTelemetry" en falseDisable telemetry: Under properties set "enableTelemetry": false
    • Deshabilite la descarga de versiones automáticas de Fabric y las notificaciones de que la versión actual del clúster está próxima a finalizar el soporte técnico: en Propiedades, establezca "fabricClusterAutoupgradeEnabled" en true.Disable automatic Fabric version downloading & notifications that the current cluster version is nearing end of support: Under properties set "fabricClusterAutoupgradeEnabled": false
    • Como alternativa, en el caso de que el acceso a Internet de red está limitado a los dominios de la lista blanca, tendrán que incluirse los dominios siguientes para la actualización automática: go.microsoft.com y download.microsoft.com.Alternatively, if network internet access is limited to white-listed domains, the domains below are required for automatic upgrade: go.microsoft.com download.microsoft.com
  6. Establezca las exclusiones adecuadas del antivirus de Service Fabric:Set appropriate Service Fabric antivirus exclusions:

Directorios excluidos del antivirusAntivirus Excluded directories
Archivos de programa\Microsoft Service FabricProgram Files\Microsoft Service Fabric
FabricDataRoot (de la configuración del clúster)FabricDataRoot (from cluster configuration)
FabricLogRoot (de la configuración del clúster)FabricLogRoot (from cluster configuration)
Procesos excluidos del 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

Validación del entorno mediante el script TestConfigurationValidate environment using TestConfiguration script

El script TestConfiguration.ps1 se puede encontrar en el paquete independiente.The TestConfiguration.ps1 script can be found in the standalone package. Se usa como Analizador de procedimientos recomendados para validar algunos de los criterios anteriores y debe usarse como una comprobación de integridad para validar si un clúster puede implementarse en un entorno determinado.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. Si se produce cualquier error, consulte la lista que aparece en Configuración del entorno para solucionar el problema.If there is any failure, refer to the list under Environment Setup for troubleshooting.

Este script puede ejecutarse en cualquier máquina que tenga acceso de administrador a todas las máquinas que se muestran como nodos en el archivo de configuración del clúster.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 máquina donde se ejecuta este script no tiene que formar parte del clúster.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

Actualmente, este módulo de prueba de configuración no valida la configuración de seguridad, así que se debe realizar de forma independiente.Currently this configuration testing module does not validate the security configuration so this has to be done independently.

Nota

Continuamente realizamos mejoras para conseguir que este módulo sea más robusto; por tanto, si cree que hay algún caso incorrecto o que falta que no está contemplado en TestConfiguration, comuníquenoslo a través de nuestros canales de soporte técnico.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.

Pasos siguientesNext steps