Criar um modelo do Gerenciador de Recursos de cluster do Service Fabric

Um cluster do Azure Service Fabric é um conjunto de máquinas virtuais conectado à rede no qual seus microsserviços são implantados e gerenciados. Um cluster do Service Fabric em execução no Azure é um recurso do Azure e é implantado, gerenciado e monitorado usando o Gerenciador de Recursos. Este artigo descreve como criar um modelo do Resource Manager para um cluster do Service Fabric em execução no Azure. Quando o modelo estiver concluído, você poderá implantar o cluster no Azure.

A segurança do cluster é configurada quando o cluster é configurado pela primeira vez e não pode ser alterada posteriormente. Antes de configurar um cluster, leia Cenários de segurança de cluster do Service Fabric. No Azure, o Service Fabric usa o certificado x509 para proteger seu cluster e seus pontos de extremidade, autenticar clientes e criptografar dados. O Microsoft Entra ID também é recomendado para proteger o acesso aos pontos de extremidade de gerenciamento. Os locatários e usuários do Microsoft Entra devem ser criados antes de criar o cluster. Para obter mais informações, leia Configurar o Microsoft Entra ID para autenticar clientes.

Antes de implantar um cluster de produção para executar cargas de trabalho de produção, leia primeiro a lista de verificação de preparação para produção.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Criar o modelo do Resource Manager

Os modelos do Gerenciador de Recursos de Exemplo estão disponíveis nos exemplos do Azure no GitHub. Esses modelos podem ser usados como um ponto de partida para seu modelo de cluster.

Este artigo usa o modelo de exemplo de cluster seguro de cinco nós e os parâmetros do modelo. Transfira azuredeploy.json e azuredeploy.parameters.json para o seu computador e abra ambos os ficheiros no seu editor de texto favorito.

Nota

Para nuvens nacionais (Azure Government, Microsoft Azure operado pela 21Vianet, Azure Alemanha), você também deve adicionar o seguinte fabricSettings ao seu modelo: AADLoginEndpoint, AADTokenEndpointFormat e AADCertEndpointFormat.

Adicionar certificados

Você adiciona certificados a um modelo do Gerenciador de Recursos de cluster fazendo referência ao cofre de chaves que contém as chaves de certificado. Adicione esses parâmetros e valores do cofre de chaves em um arquivo de parâmetros de modelo do Resource Manager (azuredeploy.parameters.json).

Adicionar todos os certificados ao conjunto de escala da máquina virtual osProfile

Cada certificado instalado no cluster deve ser configurado na seção osProfile do recurso de conjunto de escala (Microsoft.Compute/virtualMachineScaleSets). Essa ação instrui o provedor de recursos a instalar o certificado nas VMs. Esta instalação inclui o certificado de cluster e quaisquer certificados de segurança de aplicativo que você planeja usar para seus aplicativos:

{
  "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')]"
            },
            ...
          ]
        }
      ]
    }
  }
}

Configurar o certificado de cluster do Service Fabric

O certificado de autenticação de cluster deve ser configurado no recurso de cluster do Service Fabric (Microsoft.ServiceFabric/clusters) e na extensão do Service Fabric para conjuntos de escala de máquina virtual no recurso de conjunto de escala de máquina virtual. Essa disposição permite que o provedor de recursos do Service Fabric a configure para uso para autenticação de cluster e autenticação de servidor para pontos de extremidade de gerenciamento.

Adicionar as informações do certificado o recurso Conjunto de dimensionamento de máquina virtual

{
  "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')]"
                },
                ...
              }
            }
          }
        ]
      }
    }
  }
}

Adicionar as informações do certificado ao recurso de cluster do 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')]"
    },
    ...
  }
}

Adicionar a configuração do Microsoft Entra para usar o Microsoft Entra ID para acesso do cliente

Adicionar a configuração do Microsoft Entra a um modelo do Gerenciador de Recursos de cluster fazendo referência ao cofre de chaves que contém as chaves de certificado. Adicione esses parâmetros e valores do Microsoft Entra em um arquivo de parâmetros de modelo do Resource Manager (azuredeploy.parameters.json).

Nota

No Linux, os locatários e usuários do Microsoft Entra devem ser criados antes de criar o cluster. Para obter mais informações, leia Configurar o 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')]"
    },
    ...
  }
}

Preencha o arquivo de parâmetros com os valores

Por fim, use os valores de saída do cofre de chaves e os comandos do Azure AD PowerShell para preencher o arquivo de parâmetros.

Se você planeja usar os módulos do Azure Service Fabric RM PowerShell, não precisará preencher as informações do certificado do cluster. Se você quiser que o sistema gere o certificado autoassinado para segurança de cluster, basta mantê-los como nulos.

Nota

Para que os módulos RM captem e preencham esses valores de parâmetros vazios, os nomes dos parâmetros correspondem muito aos nomes abaixo

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

Se você estiver usando certificados de aplicativo ou estiver usando um cluster existente que você carregou para o cofre de chaves, você precisa obter essas informações e preenchê-las.

Os módulos RM não têm a capacidade de gerar a configuração do Microsoft Entra para você, portanto, se você planeja usar o ID do Microsoft Entra para acesso de cliente, você precisa preenchê-lo.

{
    "$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>"
        },
        ...
    }
}

Teste seu modelo

Use o seguinte comando do PowerShell para testar seu modelo do Gerenciador de Recursos com um arquivo de parâmetro:

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

Caso você tenha problemas e receba mensagens enigmáticas, use "-Debug" como opção.

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

O diagrama a seguir ilustra onde o cofre de chaves e a configuração do Microsoft Entra se encaixam no modelo do Gerenciador de Recursos.

Resource Manager dependency map

Próximos passos

Agora que você tem um modelo para seu cluster, saiba como implantar o cluster no Azure. Se ainda não o fez, leia a lista de verificação de preparação para produção antes de implantar um cluster de produção.

Para saber mais sobre a sintaxe JSON e as propriedades dos recursos implantados neste artigo, consulte: