Share via


Creación de una plantilla de Resource Manager para el clúster de Service Fabric

Un clúster de Azure Service Fabric es un conjunto de máquinas virtuales conectadas a la red, en las que se implementan y administran los microservicios. Un clúster de Service Fabric que se ejecuta en Azure es un recurso de Azure y se implementa, administra y supervisa mediante Resource Manager. En este artículo se describe cómo crear una plantilla de Resource Manager para un clúster de Service Fabric que se ejecuta en Azure. Una vez completada la plantilla, puede implementar el clúster en Azure.

La seguridad del clúster se configura cuando el clúster se configura por primera vez y no se puede cambiar más adelante. Antes de configurar un clúster, lea Escenarios de seguridad de los clústeres de Service Fabric. En Azure, Service Fabric usa un certificado x509 para proteger el clúster y sus puntos de conexión, autenticar a los clientes y cifrar los datos. También se recomienda Microsoft Entra ID para proteger el acceso a los puntos de conexión de administración. Los inquilinos y usuarios de Microsoft Entra deben crearse antes de crear el clúster. Para obtener más información, consulte Configuración de Microsoft Entra ID para autenticar clientes.

Antes de implementar un clúster de producción para ejecutar cargas de trabajo de producción, asegúrese de leer la Lista de comprobación sobre la preparación de producción.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Consulte Instalación de Azure PowerShell para empezar. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Creación de la plantilla de Resource Manager

Las plantillas de ejemplo de Resource Manager están disponibles en los ejemplos de Azure de GitHub. Estas plantillas se pueden usar como punto de partida para crear la plantilla de clúster.

En este artículo se usa la plantilla de ejemplo five-node secure cluster y sus parámetros de plantilla. Descargue azuredeploy.json y azuredeploy.parameters.json en el equipo y abra ambos archivos en un editor de texto.

Nota:

Para las nubes nacionales (Azure Government, Microsoft Azure operado por 21Vianet, Azure Alemania), también debe agregar el siguiente fabricSettings a la plantilla: AADLoginEndpoint, AADTokenEndpointFormat y AADCertEndpointFormat.

Adición de certificados

Para agregar certificados a una plantilla de Resource Manager para el clúster, haga referencia al almacén de claves que contiene las claves de certificado. Agregue esos parámetros y valores de almacén de claves en un archivo de parámetros de plantilla de Resource Manager (azuredeploy.parameters.json).

Incorporación de todos los certificados a osProfile del conjunto de escalado de máquinas virtuales

Todos los certificados instalados en el clúster deben estar configurados en la sección osProfile del recurso del conjunto de escalado (Microsoft.Compute/virtualMachineScaleSets). Con ello se indica al proveedor de recursos que instale el certificado en las máquinas virtuales. Esta instalación incluye tanto el certificado del clúster como los certificados de seguridad de la aplicación que planee usar para las aplicaciones:

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "osProfile": {
      ...
      "secrets": [
        {
          "sourceVault": {
            "id": "[parameters('sourceVaultValue')]"
          },
          "vaultCertificates": [
            {
              "certificateStore": "[parameters('clusterCertificateStorevalue')]",
              "certificateUrl": "[parameters('clusterCertificateUrlValue')]"
            },
            {
              "certificateStore": "[parameters('applicationCertificateStorevalue')",
              "certificateUrl": "[parameters('applicationCertificateUrlValue')]"
            },
            ...
          ]
        }
      ]
    }
  }
}

Configuración del certificado de clúster de Service Fabric

El certificado de autenticación del clúster debe estar configurado tanto en el recurso del clúster de Service Fabric (Microsoft.ServiceFabric/clusters) como en la extensión de Service Fabric para conjuntos de escalado de máquinas virtuales en el recurso de conjuntos de escalado de máquinas virtuales. Esta disposición permite al proveedor de recursos de Service Fabric configurarlo para su uso en la autenticación del clúster y la autenticación del servidor en los puntos de conexión de administración.

Agregue la información de certificado al recurso del conjunto de escalado de máquinas virtuales

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "virtualMachineProfile": {
      "extensionProfile": {
        "extensions": [
          {
            "name": "[concat('ServiceFabricNodeVmExt_',variables('vmNodeType0Name'))]",
            "properties": {
              ...
              "settings": {
                ...
                "certificate": {
                  "commonNames": ["[parameters('certificateCommonName')]"],
                  "x509StoreName": "[parameters('clusterCertificateStoreValue')]"
                },
                ...
              }
            }
          }
        ]
      }
    }
  }
}

Agregue la información de certificado al recurso de clúster de Service Fabric

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
  ],
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
  }
}

Adición de la configuración de Microsoft Entra para usar Microsoft Entra ID para el acceso de cliente

Para agregar la configuración de Microsoft Entra a una plantilla de Resource Manager del clúster, haga referencia al almacén de claves que contiene las claves de certificado. Agregue esos parámetros y valores de Microsoft Entra en un archivo de parámetros de plantilla de Resource Manager (azuredeploy.parameters.json).

Nota:

En Linux, los inquilinos y usuarios de Microsoft Entra deben crearse antes de crear el clúster. Para obtener más información, consulte Configuración de Microsoft Entra ID para autenticar clientes.

{
  "apiVersion": "2018-02-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  ...
  "properties": {
    "certificateCommonNames": {
        "commonNames": [
        {
            "certificateCommonName": "[parameters('certificateCommonName')]",
            "certificateIssuerThumbprint": ""
        }
        ],
        "x509StoreName": "[parameters('certificateStoreValue')]"
    },
    ...
    "azureActiveDirectory": {
      "tenantId": "[parameters('aadTenantId')]",
      "clusterApplication": "[parameters('aadClusterApplicationId')]",
      "clientApplication": "[parameters('aadClientApplicationId')]"
    },
    ...
  }
}

Relleno del archivo de parámetros con los valores

Por último, use los valores de salida del almacén de claves y los comandos de PowerShell de Azure AD para rellenar el archivo de parámetros.

Si tiene previsto usar los módulos de PowerShell de RM de Azure Service Fabric, no es necesario rellenar la información de certificado del clúster. Si desea que el sistema genere el certificado autofirmado para la seguridad del clúster, basta con mantenerlos como null.

Nota

Para que los módulos de RM seleccionen y rellenen estos valores de parámetro vacíos, los nombres de parámetros deben coincidir en gran medida con los nombres siguientes.

"clusterCertificateThumbprint": {
    "value": ""
},
"certificateCommonName": {
    "value": ""
},
"clusterCertificateUrlValue": {
    "value": ""
},
"sourceVaultvalue": {
    "value": ""
},

Si va a usar certificados de aplicación o usa un clúster existente que ha cargado en el almacén de claves, debe obtener esta información y rellenarla.

Los módulos de RM no tienen la posibilidad de generar la configuración de Microsoft Entra automáticamente. Por ello, si tiene previsto usar Microsoft Entra ID para el acceso de cliente, debe rellenarla.

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        ...
        "clusterCertificateStoreValue": {
            "value": "My"
        },
        "clusterCertificateThumbprint": {
            "value": "<thumbprint>"
        },
        "clusterCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myclustercert/4d087088df974e869f1c0978cb100e47"
        },
        "applicationCertificateStorevalue": {
            "value": "My"
        },
        "applicationCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myapplicationcert/2e035058ae274f869c4d0348ca100f08"
        },
        "sourceVaultvalue": {
            "value": "/subscriptions/<guid>/resourceGroups/mycluster-keyvault/providers/Microsoft.KeyVault/vaults/myvault"
        },
        "aadTenantId": {
            "value": "<guid>"
        },
        "aadClusterApplicationId": {
            "value": "<guid>"
        },
        "aadClientApplicationId": {
            "value": "<guid>"
        },
        ...
    }
}

Prueba de la plantilla

Use el siguiente comando de PowerShell para probar la plantilla de Resource Manager con un archivo de parámetros:

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json

Si se encuentra con problemas y recibe mensajes cifrados, use "-Depurar" como opción.

Test-AzResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug

En el diagrama siguiente se ilustra el lugar que ocupa el almacén de claves y la configuración de Microsoft Entra en la plantilla de Resource Manager.

Resource Manager dependency map

Pasos siguientes

Ahora que tiene una plantilla para el clúster, obtenga información sobre cómo implementar el clúster en Azure. Si no lo ha hecho ya, lea el Lista de comprobación sobre la preparación de producción antes de implementar un clúster de producción.

Para información sobre la sintaxis JSON y las propiedades de los recursos implementados en este artículo, consulte: