Implantar um cluster do Service Fabric no Azure Stack Hub

Use o item Cluster do Service Fabric do Azure Marketplace para implantar um cluster do Service Fabric seguro no Azure Stack Hub.

Para obter mais informações sobre como trabalhar com o Service Fabric, consulte Visão geral dos cenários de segurança de 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 usa o provedor 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 usando Desired State Configuration (DSC).

Pré-requisitos

As seguintes opções são necessárias para implantar o cluster do Service Fabric:

  1. Certificado de cluster
    Esse é o certificado de servidor X.509 que você adiciona a Key Vault ao implantar o Service Fabric.

    • O CN nesse certificado deve corresponder ao FQDN (Nome de Domínio Totalmente Qualificado) do cluster do Service Fabric criado.

    • O formato do certificado deve ser PFX, pois as chaves públicas e privadas são necessárias. Confira os requisitos para criar esse certificado do lado do servidor.

      Observação

      Você pode usar um certificado autoassinado em lugar do certificado de servidor X.509 para fins de teste. Os certificados autoassinados não precisam corresponder ao FQDN do cluster.

  2. certificado do cliente Administração
    Esse é o certificado que o cliente usa para autenticar no cluster do Service Fabric, que pode ser autoassinado. Confira os requisitos para criar esse certificado de cliente.

  3. Os seguintes itens devem estar disponíveis no Azure Stack Hub Marketplace:

    • Windows Server 2016 – O modelo usa 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 Estágio Desejado do PowerShell – Extensão de Máquina Virtual da Microsoft.

Adicionar um segredo ao Key Vault

Para implantar um cluster do Service Fabric, você deve especificar o identificador ou a URL do Key Vault secreto correto para o cluster do Service Fabric. O modelo de Resource Manager do Azure usa um Key Vault como entrada. Em seguida, o modelo recupera o certificado de cluster ao instalar o cluster do Service Fabric.

Importante

Você deve usar o PowerShell para adicionar um segredo a Key Vault para uso com o Service Fabric. Não use o portal.

Use o script a seguir para criar o Key Vault e adicionar o certificado de cluster a ele. (Consulte os pré-requisitos.) Antes de executar o script, examine o script de exemplo e atualize os parâmetros indicados para corresponder ao seu ambiente. Esse script também produzirá os valores que você precisa fornecer ao modelo de Resource Manager do Azure.

Dica

Antes que o script possa ser bem-sucedido, deve haver uma oferta pública que inclua os serviços para 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, consulte Gerenciar Key Vault no Azure Stack Hub com o PowerShell.

Implantar o item do Marketplace

  1. No portal do usuário, acesse + Criar um recurso>>Cluster do Service Fabric.

    Selecionar Cluster do Service Fabric

  2. Para cada página, como Noções básicas, preencha o formulário de implantação. Use padrões se você não tiver certeza de um valor.

    Para implantações em um Azure Stack Hub desconectado ou para implantar outra versão do Service Fabric, baixe o pacote de implantação do Service Fabric e seu pacote de runtime correspondente e hospede-o em um blob do Azure Stack Hub. Forneça esses valores para os campos URL do pacote de implantação do Service Fabric e URL do pacote de runtime do Service Fabric .

    Observação

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

    Para implantações desconectadas, baixe esses pacotes do local especificado e hospede-os localmente em um Blob do Azure Stack Hub.

    Noções básicas

  3. Na página Configurações de Rede , você pode especificar portas específicas a serem abertas para seus aplicativos:

    Configurações de Rede

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

    Para o Administração Impressão Digital do Certificado do Cliente, insira a impressão digital do certificado do cliente Administração. (Consulte os pré-requisitos.)

    • Key Vault de origem: especifique a cadeia de caracteres inteira keyVault id dos resultados do script.
    • URL do Certificado de Cluster: especifique a URL inteira do Secret Id dos resultados do script.
    • Impressão digital do Certificado de Cluster: especifique a Impressão Digital do Certificado de Cluster dos resultados do script.
    • URL do Certificado do Servidor: se você quiser usar um certificado separado do certificado de cluster, carregue o certificado em um keyvault e forneça a URL completa para o segredo.
    • Impressão digital do Certificado do Servidor: especifique a impressão digital do Certificado do Servidor
    • Administração impressões digitais do certificado do cliente: especifique a impressão digital do certificado do cliente Administração criada nos pré-requisitos.

    Saída do script

    Segurança

  5. Conclua o assistente e selecione Criar para implantar o Cluster do Service Fabric.

Acessar o cluster do Service Fabric

Você pode acessar o cluster do Service Fabric usando o Service Fabric Explorer ou o PowerShell do Service Fabric.

Usar o Service Fabric Explorer

  1. Verifique se o navegador tem acesso ao certificado do cliente Administração e se pode autenticar no cluster do Service Fabric.

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

    b. Em Certificados, selecione Importar para iniciar o Assistente de Importação de Certificado e clique em Avançar. Na página Arquivo a Importar, clique em Procurar e selecione o certificado do cliente Administração fornecido ao modelo de Resource Manager do Azure.

    Observação

    Esse certificado não é o certificado de cluster que foi adicionado anteriormente ao Key Vault.

    c. Verifique se você tem a opção "Troca de Informações Pessoais" selecionada na lista suspensa de extensão da janela Explorador de Arquivos.

    Troca de informações pessoais

    d. Na página Repositório de Certificados , selecione Pessoal e conclua o assistente.
    Repositório de certificados

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

    a. Vá para o grupo de recursos 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 a folha Endereço IP público .

    Endereço IP público

    b. Na folha Endereço IP público, o FQDN é exibido como nome DNS.

    Nome DNS

  3. Para localizar a URL do Service Fabric Explorer e o ponto de extremidade de conexão do cliente, examine os resultados da implantação do modelo.

  4. No navegador, acesse https://*FQDN*:19080. Substitua FQDN pelo FQDN do cluster do Service Fabric da etapa 2.
    Se você tiver usado um certificado autoassinado, receberá um aviso de que a conexão não é segura. Para continuar no site, selecione Mais Informações e vá para a página da Web.

  5. Para autenticar no site, você deve selecionar um certificado a ser usado. Selecione Mais opções, escolha o certificado apropriado e clique em OK para se conectar ao Service Fabric Explorer.

    Authenticate

Usar o PowerShell do Service Fabric

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

  2. Depois que a instalação for concluída, configure as variáveis de Ambiente do sistema para garantir que os cmdlets do Service Fabric estejam acessíveis do PowerShell.

    a. Vá para Painel de Controle>Sistema eSistema de Segurança > e selecione Configurações avançadas do sistema.

    Painel de controle

    b. Na guia Avançado de Propriedades do Sistema, selecione Variáveis de Ambiente.

    c. Para variáveis do sistema, edite Caminho e verifique se C:\Arquivos de 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 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
    

    Observação

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

Próximas etapas

Implantar o Kubernetes no Azure Stack Hub