Implementar um cluster do Service Fabric no Azure Stack Hub

Utilize o item cluster do Service Fabric do Azure Marketplace para implementar um cluster protegido do Service Fabric no Azure Stack Hub.

Para obter mais informações sobre como trabalhar com o Service Fabric, veja Descrição geral dos cenários de segurança do cluster do Azure Service Fabric e do Service Fabric na documentação do Azure.

O cluster do Service Fabric no Azure Stack Hub não utiliza o fornecedor de recursos Microsoft.ServiceFabric. Em vez disso, no Azure Stack Hub, o cluster do Service Fabric é um conjunto de dimensionamento de máquinas virtuais com software pré-instalado com Desired State Configuration (DSC).

Pré-requisitos

São necessários os seguintes passos para implementar o cluster do Service Fabric:

  1. Certificado de cluster
    Este é o certificado de servidor X.509 que adiciona ao Key Vault ao implementar o Service Fabric.

    • O CN neste certificado tem de corresponder ao Nome de Domínio Completamente Qualificado (FQDN) do cluster do Service Fabric que criar.

    • O formato do certificado tem de ser PFX, uma vez que as chaves públicas e privadas são necessárias. Veja os requisitos para criar este certificado do lado do servidor.

      Nota

      Pode utilizar um certificado autoassinado no local do certificado de servidor X.509 para fins de teste. Os certificados autoassinados não precisam de corresponder ao FQDN do cluster.

  2. Administração Certificado de cliente
    Este é o certificado que o cliente utiliza para autenticar no cluster do Service Fabric, que pode ser autoassinado. Veja os requisitos para criar este certificado de cliente.

  3. Os seguintes itens têm de estar disponíveis no Marketplace do Azure Stack Hub:

    • Windows Server 2016 - O modelo utiliza a imagem Windows Server 2016 para criar o cluster.
    • Extensão de Script Personalizado - Extensão de Máquina Virtual da Microsoft.
    • Configuração de Fase Pretendida do PowerShell – Extensão de Máquina Virtual da Microsoft.

Adicionar um segredo ao Key Vault

Para implementar um cluster do Service Fabric, tem de especificar o Key Vault Identificador Secreto ou URL correto para o cluster do Service Fabric. O modelo de Resource Manager do Azure utiliza um Key Vault como entrada. Em seguida, o modelo obtém o certificado de Cluster ao instalar o cluster do Service Fabric.

Importante

Tem de utilizar o PowerShell para adicionar um segredo ao Key Vault para utilização com o Service Fabric. Não utilize o portal.

Utilize o seguinte script para criar o Key Vault e adicionar o certificado de cluster ao mesmo. (Consulte os pré-requisitos.) Antes de executar o script, reveja o script de exemplo e atualize os parâmetros indicados para corresponderem ao seu ambiente. Este script também irá produzir os valores que precisa de fornecer ao modelo de Resource Manager do Azure.

Dica

Antes de o script poder ser bem-sucedido, tem de existir uma oferta pública que inclua os serviços de Computação, Rede, Armazenamento e Key Vault.

   function Get-ThumbprintFromPfx($PfxFilePath, $Password) 
      {
         return New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($PfxFilePath, $Password)
      }
   
   function Publish-SecretToKeyVault ($PfxFilePath, $Password, $KeyVaultName)
      {
         $keyVaultSecretName = "ClusterCertificate"
         $certContentInBytes = [io.file]::ReadAllBytes($PfxFilePath)
         $pfxAsBase64EncodedString = [System.Convert]::ToBase64String($certContentInBytes)
   
         $jsonObject = ConvertTo-Json -Depth 10 ([pscustomobject]@{
               data     = $pfxAsBase64EncodedString
               dataType = 'pfx'
               password = $Password
         })
   
         $jsonObjectBytes = [System.Text.Encoding]::UTF8.GetBytes($jsonObject)
         $jsonEncoded = [System.Convert]::ToBase64String($jsonObjectBytes)
         $secret = ConvertTo-SecureString -String $jsonEncoded -AsPlainText -Force
         $keyVaultSecret = Set-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName -SecretValue $secret
         
         $pfxCertObject = Get-ThumbprintFromPfx -PfxFilePath $PfxFilePath -Password $Password
   
         Write-Host "KeyVault id: " -ForegroundColor Green
         (Get-AzKeyVault -VaultName $KeyVaultName).ResourceId
         
         Write-Host "Secret Id: " -ForegroundColor Green
         (Get-AzureKeyVaultSecret -VaultName $KeyVaultName -Name $keyVaultSecretName).id
   
         Write-Host "Cluster Certificate Thumbprint: " -ForegroundColor Green
         $pfxCertObject.Thumbprint
      }
   
   #========================== CHANGE THESE VALUES ===============================
   $armEndpoint = "https://management.local.azurestack.external"
   $tenantId = "your_tenant_ID"
   $location = "local"
   $clusterCertPfxPath = "Your_path_to_ClusterCert.pfx"
   $clusterCertPfxPassword = "Your_password_for_ClusterCert.pfx"
   #==============================================================================
   
   Add-AzEnvironment -Name AzureStack -ARMEndpoint $armEndpoint
   Connect-AzAccount -Environment AzureStack -TenantId $tenantId
   
   $rgName = "sfvaultrg"
   Write-Host "Creating Resource Group..." -ForegroundColor Yellow
   New-AzResourceGroup -Name $rgName -Location $location
   
   Write-Host "Creating Key Vault..." -ForegroundColor Yellow
   $Vault = New-AzKeyVault -VaultName sfvault -ResourceGroupName $rgName -Location $location -EnabledForTemplateDeployment -EnabledForDeployment -EnabledForDiskEncryption
   
   Write-Host "Publishing certificate to Vault..." -ForegroundColor Yellow
   Publish-SecretToKeyVault -PfxFilePath $clusterCertPfxPath -Password $clusterCertPfxPassword -KeyVaultName $vault.VaultName

Para obter mais informações, veja Gerir Key Vault no Azure Stack Hub com o PowerShell.

Implementar o item do Marketplace

  1. No portal de utilizador, aceda a + Criar um clusterdoService Fabric deComputação> de recursos>.

    Selecionar Cluster do Service Fabric

  2. Para cada página, como Noções Básicas, preencha o formulário de implementação. Utilize predefinições se não tiver a certeza de um valor.

    Para implementações num Azure Stack Hub desligado ou para implementar outra versão do Service Fabric, transfira o pacote de implementação do Service Fabric e o pacote de runtime correspondente e aloje-o num blob do Azure Stack Hub. Forneça estes valores aos campos URL do pacote de implementação do Service Fabric e URL do pacote de runtime do Service Fabric .

    Nota

    Existem problemas de compatibilidade entre a versão mais recente do Service Fabric e o respetivo SDK correspondente. Até que esse problema seja resolvido, indique os seguintes parâmetros para o URL do pacote de implementação e o URL do pacote de runtime. Caso contrário, as implementações falharão.

    Para implementações desligadas, transfira estes pacotes a partir da localização especificada e aloje-os localmente num Blob do Azure Stack Hub.

    Noções básicas

  3. Na página Definições de Rede , pode especificar portas específicas a abrir para as suas aplicações:

    Definições de Rede

  4. Na página Segurança, adicione os valores que obteve ao criar o Azure Key Vault e Carregar o Segredo.

    Para o Administração Thumbprint do Certificado de Cliente, introduza o thumbprint do certificado de cliente do Administração. (Consulte os pré-requisitos.)

    • Key Vault de origem: especifique toda keyVault id a cadeia a partir dos resultados do script.
    • URL do Certificado de Cluster: especifique todo o URL dos Secret Id resultados do script.
    • Thumbprint do Certificado de Cluster: especifique o Thumbprint do Certificado de Cluster a partir dos resultados do script.
    • URL do Certificado de Servidor: se quiser utilizar um certificado separado do certificado de Cluster, carregue o certificado para um keyvault e forneça o URL completo para o segredo.
    • Thumbprint do Certificado de Servidor: especifique o thumbprint para o Certificado de Servidor
    • Administração Thumbprints do Certificado de Cliente: especifique o Thumbprint do Certificado de Cliente Administração criado nos pré-requisitos.

    Saída do script

    Segurança

  5. Conclua o assistente e, em seguida, selecione Criar para implementar o Cluster do Service Fabric.

Aceder ao Cluster do Service Fabric

Pode aceder ao cluster do Service Fabric com o Service Fabric Explorer ou o PowerShell do Service Fabric.

Utilizar Service Fabric Explorer

  1. Certifique-se de que o browser tem acesso ao certificado de cliente Administração e pode autenticar-se no cluster do Service Fabric.

    a. Abra o Internet Explorer e aceda aCertificados deConteúdo>de Opções> da Internet.

    b. Em Certificados, selecione Importar para iniciar o Assistente de Importação de Certificados e, em seguida, clique em Seguinte. Na página Ficheiro a Importar, clique em Procurar e selecione o certificado Administração Cliente que forneceu ao modelo de Resource Manager do Azure.

    Nota

    Este certificado não é o certificado de Cluster que foi adicionado anteriormente ao Key Vault.

    c. Certifique-se de que tem "Personal Information Exchange" selecionado na lista pendente da extensão da janela Explorador de Ficheiros.

    Troca de informações pessoais

    d. Na página Arquivo de Certificados , selecione Pessoal e, em seguida, conclua o assistente.
    Arquivo de certificados

  2. Para localizar o FQDN do cluster do Service Fabric:

    a. Aceda ao grupo de recursos que está associado ao cluster do Service Fabric e localize o recurso de endereço IP Público . Selecione o objeto associado ao endereço IP Público para abrir o painel Endereço IP Público .

    Endereço IP público

    b. No painel Endereço IP Público, o FQDN é apresentado como nome DNS.

    Nome DNS

  3. Para localizar o URL do Service Fabric Explorer e o ponto final de ligação do Cliente, reveja os resultados da implementação do Modelo.

  4. No browser, aceda a https://*FQDN*:19080. Substitua FQDN pelo FQDN do cluster do Service Fabric no passo 2.
    Se tiver utilizado um certificado autoassinado, receberá um aviso de que a ligação não é segura. Para continuar para o site, selecione Mais Informações e, em seguida, aceda à página Web.

  5. Para autenticar no site, tem de selecionar um certificado a utilizar. Selecione Mais opções, escolha o certificado adequado e, em seguida, clique em OK para ligar ao Service Fabric Explorer.

    Autenticar

Utilizar o PowerShell do Service Fabric

  1. Instale o SDK do Microsoft Azure Service Fabric a partir de Preparar o ambiente de desenvolvimento no Windows na documentação do Azure Service Fabric.

  2. Após a conclusão da instalação, configure as variáveis de Ambiente do sistema para garantir que os cmdlets do Service Fabric estão acessíveis a partir do PowerShell.

    a. Aceda a Painel de Controlo>Sistema e Sistema de Segurança> e, em seguida, selecione Definições avançadas do sistema.

    Painel de controlo

    b. No separador Avançadas das Propriedades do Sistema, selecione Variáveis de Ambiente.

    c. Para variáveis de sistema, edite Caminho e certifique-se de que C:\Programas\Microsoft Service Fabric\bin\Fabric\Fabric.Code está na parte superior da lista de variáveis de ambiente.

    Lista de variáveis de ambiente

  3. Depois de alterar a ordem das variáveis de ambiente, reinicie o PowerShell e, em seguida, execute o seguinte script do PowerShell para obter acesso ao cluster do Service Fabric:

     Connect-ServiceFabricCluster -ConnectionEndpoint "\[Service Fabric
     CLUSTER FQDN\]:19000" \`
    
     -X509Credential -ServerCertThumbprint
     761A0D17B030723A37AA2E08225CD7EA8BE9F86A \`
    
     -FindType FindByThumbprint -FindValue
     0272251171BA32CEC7938A65B8A6A553AA2D3283 \`
    
     -StoreLocation CurrentUser -StoreName My -Verbose
    

    Nota

    Não existem https:// antes do nome do cluster no script. A porta 19000 é necessária.

Passos seguintes

Implementar o Kubernetes no Azure Stack Hub