Tipos de nodo de clúster administrado de Service Fabric
Un conjunto de escalado de máquinas virtuales respalda cada tipo de nodo en un clúster administrado de Service Fabric. Con los clústeres administrados, puede realizar los cambios necesarios a través del proveedor de recursos de clúster administrado de Service Fabric. El proveedor de clústeres administrados crea y abstrae todos los recursos subyacentes del clúster en su nombre. Hacer que el proveedor de recursos administre los recursos ayuda a simplificar la implementación y administración del tipo de nodo de clúster. La administración evita errores de operación, como eliminar un nodo de inicialización, y ayuda a aplicar procedimientos recomendados, como validar si es seguro usar una SKU de máquina virtual (VM).
En el resto de este documento se explica cómo ajustar varias opciones de configuración, entre las que se incluyen:
- Crear un tipo de nodo
- Ajustar el recuento de instancias de tipo de nodo
- Habilitar las actualizaciones automáticas de imágenes del sistema operativo
- Cambiar la imagen del sistema operativo
- Configurar propiedades de colocación
- Establecer el prefijo de nombre de equipo
Este documento se centra en el uso de las plantillas de Azure Portal y Azure Resource Manager para realizar cambios.
Importante
De momento, los clústeres administrados de Service Fabric no admiten imágenes de SO personalizadas.
Nota:
No podrá modificar el tipo de nodo mientras haya un cambio en curso. Se recomienda dejar que se complete cualquier cambio solicitado antes de realizar otro.
Adición de un tipo de nodo
Puede agregar un tipo de nodo a un Service Fabric administrado mediante Portal, una plantilla de Azure Resource Manager o PowerShell.
Agregar con el portal
Nota:
Solo puede agregar tipos de nodo secundarios con Portal
Inicie sesión en Azure Portal
Vaya a la página de Información general del recurso de clúster.
Seleccione
Node types
bajo la secciónSettings
.Seleccione
Add
en la parte superior, rellene la información necesaria y, a continuación, seleccione Agregar en la parte inferior, eso es todo.Espere a que se complete la adición del nuevo tipo de nodo
Agregar con una plantilla de ARM
Agregue otro tipo de recurso Microsoft.ServiceFabric/managedclusters/nodetypes
con los valores necesarios y realice una implementación de clúster para que la configuración surja efecto.
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2021-05-01 o posterior.
- Asegúrese de establecer de
isPrimary
atrue
si tiene la intención de reemplazar un tipo de nodo primario existente.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeType2Name'))]",
"location": "[resourcegroup().location]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isPrimary": false,
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('nodeType2VmSize')]",
"vmInstanceCount": "[parameters('nodeType2VmInstanceCount')]",
"dataDiskSizeGB": "[parameters('nodeType2DataDiskSizeGB')]",
"dataDiskType": "[parameters('nodeType2managedDataDiskType')]"
}
}
Para obtener un ejemplo de configuración de dos tipos de nodo, consulte nuestra plantilla de ARM de ejemplo de dos tipos de nodo.
Agregar con PowerShell
Para crear un nuevo tipo de nodo, deberá definir estas propiedades:
- Grupo de recursos: grupo de recursos en el que se encuentra el clúster
- Nombre del clúster:nombre del clúster administrado
- Nombre del tipo de nodo: nombre único de los tipos de nodos existentes en el clúster.
- Recuento de instancias: número inicial de nodos del nuevo tipo de nodo.
- Tamaño de VM: SKU de VM para los nodos. Si no se especifica, se usa el valor predeterminado Standard_D2.
Nota:
Si agrega un tipo de nodo principal, se debe usar la propiedad -Primary
.
$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "nt2"
$vmSize = "Standard_D2_v2"
New-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName -InstanceCount 3 -vmSize $vmSize
Eliminación de un tipo de nodo
Puede quitar un tipo de Service Fabric de clúster administrado con Portal o PowerShell.
Nota:
Para quitar un tipo de nodo principal de un Service Fabric administrado, debe usar PowerShell y debe haber más de un tipo de nodo principal disponible.
Quitar con el portal
Inicie sesión en Azure Portal
Vaya a la página de Información general del recurso de clúster.
Seleccione
Node types
bajo la secciónSettings
.Seleccione el
Node Type
que desea quitar y seleccioneDelete
en la parte superior.
Quitar con PowerShell
Nota:
Si se quita un tipo de nodo principal para escenarios como actualizar la SKU, se tardarán varias horas y el progreso se puede supervisar mediante SFX. Los nodos de semilla migrarán un nodo por dominio de actualización (UD) a la vez.
Para eliminar un tipo de nodo, deberá definir estas propiedades:
- Grupo de recursos: grupo de recursos en el que se encuentra el clúster
- Nombre del clúster:nombre del clúster administrado
- Nombre del tipo de nodo: nombre único de los tipos de nodos existentes en el clúster.
$resourceGroup = "myResourceGroup"
$clusterName = "myCluster"
$nodeTypeName = "nt2"
Remove-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -Name $nodeTypeName
Escalar un tipo de nodo
Puede escalar un tipo Service Fabric de clúster administrado con portal, ARM plantilla o PowerShell. También puede configurar la escala automática para un tipo de nodo secundario si quiere una solución totalmente automatizada.
Nota:
- Un tipo de nodo principal no se puede establecer en escalado automático y solo se puede establecer en escala manual.
- En el tipo nodo principal, no podrá desplazarse por debajo de 3 nodos para un clúster de SKU básico y de 5 nodos, para un clúster de SKU estándar.
Escalar con el portal
En este tutorial, aprenderá a modificar el número de nodos para un tipo de nodo utilizando el portal.
Inicie sesión en Azure Portal
Vaya a la página de Información general del recurso de clúster.
Seleccione
Node Types
en la secciónSettings
.Seleccione el
Node type name
que desea modificar.Revise y actualice las propiedades de tipo de nodo si es necesario.
Seleccione
Manage node type scaling
para configurar los valores de escalado y elija entre las opciones personalizadas de escalado automático y escalado manual. La escalabilidad automática es una característica integrada que ayuda a que las aplicaciones funcionen mejor cuando demandan cambios. Puede optar por escalar el recurso manualmente a un recuento de instancias específico, o a través de una directiva de escalado automático personalizada que se escale según los umbrales de métricas. También puede programar recuentos de instancias que se escalan durante las ventanas de tiempo designadas. Obtenga más información sobre el escalado automático de Azure o vea el vídeo de procedimientos.Escalado automático personalizado: seleccione el
scale mode
adecuado para definir la directiva de escalado automático personalizado,Scale to a specific instance count
oScale based on a metric
. Esta última se basa en reglas de desencadenador de métricas, por ejemplo, aumentar el recuento de instancias en 1 cuando el porcentaje de CPU es superior al 70 %. Una vez definida la directiva, seleccioneSave
en la parte superior.Escalado manual: Ajuste el
Node count
al nuevo valor que desea y seleccioneSave
en la parte superior. En esta captura de pantalla, el valor era3
y se ajustó a5
.
Seleccione
Apply
en la parte inferior para configurar estos valores guardados en el tipo de nodo.En
Provisioning state
se muestra un estado deUpdating
hasta que se haya completado. Cuando haya finalizado, se vuelve a mostrarSucceeded
.
Escalar un tipo de nodo con una plantilla
Para ajustar el número de nodos para un tipo de nodo mediante una plantilla de ARM, ajuste la vmInstanceCount
propiedad con el nuevo valor y realice una implementación de clúster para que la configuración surja efecto. El clúster comienza a actualizarse automáticamente. Verá los nodos adicionales al completarse.
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2021-05-01 o posterior.
Nota:
El proveedor de clústeres administrados bloqueará los ajustes de escala y devolverá un error si la solicitud de escalado infringe los mínimos necesarios.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
...
"vmInstanceCount": "[parameters('nodeTypeVmInstanceCount')]",
...
}
}
Escalar un tipo de nodo con PowerShell
Cambie el recuento de instancias para aumentar o disminuir el número de nodos del tipo de nodo que desea escalar. Puede buscar los nombres de tipo de nodo en la plantilla de Azure Resource Manager (plantilla de ARM) de la implementación del clúster o en Service Fabric Explorer.
$resourceGroup = "myResourceGroup"
$clusterName = "mysfcluster"
$nodeTypeName = "FE"
$instanceCount = "7"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $resourceGroup -ClusterName $clusterName -name $nodeTypeName -InstanceCount $instanceCount -Verbose
El clúster comienza a actualizarse automáticamente. Verá los nodos adicionales al completarse.
Habilitar las actualizaciones automáticas de las imágenes del sistema operativo
Puede elegir habilitar las actualizaciones automáticas de imágenes del sistema operativo en las máquinas virtuales que ejecutan los nodos de clúster administrados. Aunque los recursos del conjunto de escalado de máquinas virtuales se administran en su nombre con los clústeres administrados, es su elección habilitar actualizaciones automáticas de imágenes de sistema operativo para los nodos del clúster. Al igual que con los clústeres de Service Fabric clásicos, los nodos de clústeres administrados no se actualizan de forma predeterminada, con el fin de evitar interrupciones imprevistas en el clúster.
Nota:
La actualización automática de imágenes del sistema operativo se admite tanto para Marketplace como para imágenes personalizadas.
Para habilitar las actualizaciones automáticas del sistema operativo:
- Use la versión
2021-05-01
(o posterior) de los recursos Microsoft.ServiceFabric/managedclusters y Microsoft.ServiceFabric/managedclusters/nodetypes. - Establezca la propiedad
enableAutoOSUpgrade
del clúster en true. - Establezca la propiedad del recurso nodeTypes del clúster
vmImageVersion
en latest.
Por ejemplo:
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters",
...
"properties": {
...
"enableAutoOSUpgrade": true
},
},
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
...
"properties": {
...
"vmImageVersion": "latest",
...
}
}
}
Una vez habilitado, Service Fabric comienza a consultar y realizar el seguimiento de las versiones de imagen del sistema operativo en el clúster administrado. Si hay disponible una nueva versión del sistema operativo, se actualizan los tipos de nodo de clúster (conjuntos de escalado de máquinas virtuales), de uno en uno. Las actualizaciones en tiempo de ejecución de Service Fabric solo se realizan después de confirmar que no hay actualizaciones de imágenes de sistema operativo de nodo de clúster en curso.
Si se produce un error en una actualización, Service Fabric lo volverá a intentar después de 24 horas, con un máximo de tres reintentos. Al igual que las actualizaciones de Service Fabric clásico (no administradas), las aplicaciones o los nodos incorrectos pueden bloquear la actualización de la imagen del sistema operativo.
Para más información sobre las actualizaciones de imágenes, consulte Actualizaciones automáticas de imágenes de sistema operativo con conjuntos de escalado de máquinas virtuales de Azure.
Modificar la SKU del sistema operativo para un tipo de nodo
Service Fabric clústeres administrados le permite modificar la SKU del sistema operativo para un tipo de nodo en su lugar. Este proceso es útil para escenarios como migrar de Windows 2019 a Windows 2022 o si desea cambiar a una SKU de servidor (núcleo) frente a servidor con SKU de experiencia de escritorio.
Modificar SKU del sistema operativo con el portal
En este tutorial, aprenderá a modificar la imagen del sistema operativo para un tipo de nodo utilizando el portal.
Inicie sesión en Azure Portal
Vaya a la página de Información general del recurso de clúster.
Seleccione
Node Types
en la secciónSettings
.Seleccione el
Node type name
que desea modificar.Ajuste el
OS Image
al nuevo valor que desea y seleccioneApply
en la parte inferior. ![Ejemplo que muestra cómo cambiar la imagen del sistema operativo] [change-os-image]!En
Provisioning state
se muestra un estado deUpdating
y se realiza un dominio de actualización a la vez. Cuando haya finalizado, se vuelve a mostrarSucceeded
.
Modificar SKU del sistema operativo con una plantilla
Para modificar la imagen del sistema operativo utilizada para un tipo de nodo mediante una plantilla de ARM, ajuste la propiedad vmImageSku
al nuevo valor y realice una implementación de clúster para que la configuración surja efecto. El proveedor de clústeres administrados modifica la imagen de cada instancia por dominio de actualización.
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2021-05-01 o posterior.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
...
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
...
}
}
Configuración de las propiedades de selección de ubicación para un tipo de nodo
Las propiedades de ubicación se usan para asegurarse de que determinadas cargas de trabajo solo se ejecutan en determinados tipos de nodo del clúster. Service Fabric los clústeres administrados admiten la configuración de estas propiedades a través del portal, ARM plantilla o PowerShell.
Configurar las propiedades de ubicación con el portal
En este tutorial, aprenderá a modificar la propiedad de selección de ubicación para un tipo de nodo utilizando el portal.
Inicie sesión en Azure Portal
Vaya a la página de Información general del recurso de clúster.
Seleccione
Node Types
en la secciónSettings
.Seleccione el
Node type name
que desea modificar.En la sección
Placement properties
, agregue el nombre y el valor que desee y, a continuación, seleccioneApply
en la parte inferior. En esta captura de pantalla,Name
SSD_Premium
se utilizó conValue
detrue
.En
Provisioning state
se muestra un estado deUpdating
hasta que se haya completado. Cuando haya finalizado, se vuelve a mostrarSucceeded
.
Configurar propiedades de ubicación con una plantilla
Para ajustar las propiedades de selección de ubicación para un tipo de nodo mediante una plantilla de ARM, ajuste la propiedad placementProperties
con uno o más nuevos valores y realice una implementación de clúster para que la configuración surja efecto. En el ejemplo siguiente se muestran tres valores que se establecen para un tipo de nodo.
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2021-05-01 o posterior.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
"placementProperties": {
"PremiumSSD": "true",
"NodeColor": "green",
"SomeProperty": "5"
}
}
}
Configurar las propiedades de ubicación con PowerShell
En el ejemplo siguiente se actualizan y sobrescriben las propiedades de ubicación existentes para un tipo de nodo determinado.
$rgName = "testRG"
$clusterName = "testCluster"
$NodeTypeName = "nt1"
Set-AzServiceFabricManagedNodeType -ResourceGroupName $rgName -ClusterName $clusterName -name $NodeTypeName -PlacementProperty @{NodeColor="Red";SomeProperty="6";} -Verbose
Modificación de la SKU de máquina virtual para un tipo de nodo
Para modificar el tamaño de la SKU de máquina virtual usado para un tipo de nodo mediante una plantilla de ARM, ajuste la propiedad vmSize
con el nuevo valor y realice una implementación de clúster para que la configuración surta efecto. El proveedor de clústeres administrados modifica la imagen de cada instancia por dominio de actualización. Para ver una lista de las opciones de SKU, consulte Tamaños de máquina virtual: Azure Virtual Machines | Microsoft Learn.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
...
"vmSize": "[parameters('vmImageVersion')]",
...
}
}
Configuración de varios discos administrados
Los clústeres administrados de Service Fabric de forma predeterminada configuran un disco administrado. Al configurar los siguientes valores y propiedades opcionales, puede agregar más discos administrados a los tipos de nodo dentro de un clúster. Puede especificar la letra de unidad, el tipo de disco y el tamaño por disco.
Configure más discos administrados declarando la propiedad additionalDataDisks
y los parámetros necesarios en la plantilla de Resource Manager como se muestra a continuación:
Requisitos de la característica
- El LUN debe ser único por disco y no se puede usar el LUN reservado 0 ó 1
- La letra de disco no puede usar letras reservadas C o D y no se puede modificar una vez creada. Si no se especifica, se utiliza S de forma predeterminada.
- Debe especificar un tipo de disco compatible
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2022-01-01 o posterior.
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
"additionalDataDisks": {
"lun": "2",
"diskSizeGB": "50",
"diskType": "Standard_LRS",
"diskLetter": "S"
}
}
}
Vea la lista completa de parámetros disponibles.
Configuración de la letra de unidad de los discos de datos de Service Fabric
Los clústeres administrados de Service Fabric por defecto configuran un disco de datos de Service Fabric y configuran automáticamente la letra de unidad en todos los nodos de un tipo de nodo. Al configurar esta propiedad y valor opcionales, puede especificar y recuperar la letra de disco de datos de Service Fabric si tiene requisitos específicos para la asignación de letras de unidad.
Requisitos de la característica
- La letra de disco no puede usar letras reservadas C o D y no se puede modificar una vez creada. Si no se especifica, se utiliza S de forma predeterminada.
- El valor de apiVersion del recurso de clúster administrado de Service Fabric debe ser 2022-01-01 o posterior.
{
{
"apiVersion": "[variables('sfApiVersion')]",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
"location": "[resourcegroup().location]",
"properties": {
"dataDiskLetter": "S"
}
}
}
Establecer el prefijo de nombre de equipo
Los clientes que requieren nombres más largos para su tipo de nodo para obtener una descripción más detallada se benefician del prefijo de nombre de equipo.
Nota:
El prefijo de nombre de equipo solo funciona para la versión de la API de Service Fabric 2024-04-01 or later
.
Implemente los siguientes cambios en la plantilla de ARM para establecer el prefijo de nombre de equipo:
{
"apiVersion": "2024-04-01",
"type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
"name": "[concat(parameters('clusterName'), '/', 'BE-testResourceGroup-testRegion-test')]",
"location": "[parameters('clusterLocation')]",
"dependsOn": [
"[concat('Microsoft.ServiceFabric/managedclusters/', parameters('clusterName'))]"
],
"properties": {
"isPrimary": false,
"dataDiskSizeGB": "[parameters('dataDiskSizeGB')]",
"vmImagePublisher": "[parameters('vmImagePublisher')]",
"vmImageOffer": "[parameters('vmImageOffer')]",
"vmImageSku": "[parameters('vmImageSku')]",
"vmImageVersion": "[parameters('vmImageVersion')]",
"vmSize": "[parameters('vmSize')]",
"vmInstanceCount": "[parameters('vmInstanceCount')]",
"computerNamePrefix": "computerNamePrefix"
}
}