Início rápido: Implementar contentores do Linux no Service Fabric

O Azure Service Fabric é uma plataforma de sistemas distribuídos par implementar e gerir microsserviços e contentores dimensionáveis e fiáveis.

Este guia de início rápido mostra como implantar contêineres Linux em um cluster do Service Fabric no Azure. Quando tiver terminado, terá uma aplicação de voto constituída por um front-end da Web Python e um back-end Redis em execução num cluster do Service Fabric. Também irá aprender a efetuar a ativação pós-falha de uma aplicação e a dimensionar uma aplicação no seu cluster.

Página Web da aplicação de Voto

Pré-requisitos

Para concluir este guia de início rápido:

  1. Crie uma conta gratuita do Azure antes de começar, se não tiver uma subscrição.

  2. Instalar a CLI do Azure

  3. Instalar o SDK e a CLI do Service Fabric

  4. Instalar o Git

Obter o pacote de aplicação

Para implementar contentores no Service Fabric, precisa de um conjunto de ficheiros de manifesto (a definição da aplicação), que descrevem os contentores individuais e a aplicação.

Em um console, use o git para clonar uma cópia da definição do aplicativo; em seguida, altere os diretórios para o Voting diretório em seu clone.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/Voting

Criar um cluster do Service Fabric

Para implementar a aplicação no Azure, precisa de um cluster do Service Fabric para executar a aplicação. Os comandos a seguir criam um cluster de cinco nós no Azure. Os comandos também criam um certificado autoassinado, adicionam-no a um cofre de chaves e baixam o certificado localmente. O novo certificado é usado para proteger o cluster quando ele é implantado e é usado para autenticar clientes.

Se desejar, você pode modificar os valores das variáveis de acordo com sua preferência. Por exemplo, westus em vez de eastus para o local.

Nota

Os nomes dos cofres de chaves devem ser universalmente exclusivos, pois são acessados como https://{vault-name}.vault.azure.net.

#!/bin/bash

# Variables
ResourceGroupName='containertestcluster' 
ClusterName='containertestcluster' 
Location='eastus' 
Password='q6D7nN%6ck@6' 
Subject='containertestcluster.eastus.cloudapp.azure.com' 
VaultName='containertestvault' 
VmPassword='Mypa$$word!321'
VmUserName='sfadminuser'

# Login to Azure and set the subscription
az login

az account set --subscription <mySubscriptionID>

# Create resource group
az group create --name $ResourceGroupName --location $Location 

# Create secure five node Linux cluster. Creates a key vault in a resource group
# and creates a certificate in the key vault. The certificate's subject name must match 
# the domain that you use to access the Service Fabric cluster.  The certificate is downloaded locally.
az sf cluster create --resource-group $ResourceGroupName --location $Location --certificate-output-folder . --certificate-password $Password --certificate-subject-name $Subject --cluster-name $ClusterName --cluster-size 5 --os UbuntuServer1804 --vault-name $VaultName --vault-resource-group $ResourceGroupName --vm-password $VmPassword --vm-user-name $VmUserName

Nota

O serviço de front-end da Web está configurado para escutar tráfego de entrada na porta 80. Por padrão, a porta 80 está aberta em suas VMs de cluster e no balanceador de carga do Azure.

Configurar o seu ambiente

O Service Fabric fornece várias ferramentas que pode utilizar para gerir um cluster e as respetivas aplicações:

  • O Service Fabric Explorer, uma ferramenta baseada no browser.
  • A CLI (Interface de Linha de Comandos) do Service Fabric, que é executada na CLI do Azure.
  • Comandos do PowerShell.

Neste início rápido, você usa a CLI do Service Fabric e o Service Fabric Explorer (uma ferramenta baseada na Web). Para usar o Service Fabric Explorer, você precisa importar o arquivo PFX de certificado para o navegador. Por padrão, o arquivo PFX não tem senha.

Mozilla Firefox é o navegador padrão no Ubuntu 18.04. Para importar o certificado para o Firefox, clique no botão de menu no canto superior direito do seu browser e, em seguida, clique em Opções. Na página Preferências, utilize a caixa de pesquisa para procurar "certificados". Clique em Ver Certificados, selecione o separador Os Seus Certificados, clique em Importar e siga as instruções para importar o certificado.

Instalar o certificado no Firefox

Implementar a aplicação do Service Fabric

  1. Conecte-se ao cluster do Service Fabric no Azure usando a CLI. O ponto final é o ponto final de gestão do seu cluster. Criou o ficheiro PEM na secção anterior.

    sfctl cluster select --endpoint https://containertestcluster.eastus.cloudapp.azure.com:19080 --pem containertestcluster22019013100.pem --no-verify
    
  2. Utilize o script de instalação para copiar a definição da aplicação de Voto para o cluster, registar o tipo de aplicação e criar uma instância da mesma. O arquivo de certificado PEM deve estar localizado no mesmo diretório que o arquivo install.sh .

    ./install.sh
    
  3. Abra um browser e navegue para o ponto final do Service Fabric Explorer para o seu cluster. O ponto de extremidade tem o seguinte formato: https:// my-azure-service-fabric-cluster-url>:19080/Explorer; por exemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer<.

  4. Expanda o nó Aplicações para ver que existe agora uma entrada para o tipo de aplicação de Voto e a instância que criou.

    Service Fabric Explorer

  5. Para ligar ao contentor em execução, abra um browser e navegue para o URL do seu cluster; por exemplo, http://containertestcluster.eastus.cloudapp.azure.com:80. Deverá ver a aplicação de Voto no browser.

    Página Web da aplicação de Voto

Nota

Também pode implementar aplicações do Service Fabric com o Docker Compose. Por exemplo, o comando seguinte pode ser utilizado para implementar e instalar a aplicação no cluster com o Docker Compose.

sfctl compose create --deployment-name TestApp --file-path ../docker-compose.yml

Efetuar a ativação pós-falha de um contentor num cluster

O Service Fabric garante que as instâncias de contentor são movidas automaticamente para outros nós do cluster, se ocorrer uma falha. Também pode drenar manualmente um nó para contentores e, em seguida, mover harmoniosamente para outros nós do cluster. O Service Fabric fornece várias formas de dimensionar os seus serviços. Nos passos seguintes, vai utilizar o Service Fabric Explorer.

Para efetuar a ativação pós-falha do contentor de front-end, execute os seguintes passos:

  1. Abra o Service Fabric Explorer no seu cluster; por exemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080/Explorer.

  2. Clique no nó fabric:/Voting/azurevotefront na vista de árvore e expanda o nó de partição (representado por um GUID). Repare no nome do nó na vista de árvore, que mostra os nós nos quais o contentor está atualmente a ser executado; por exemplo, _nodetype_1.

  3. Expanda o nó Nós na vista de árvore. Clique nas reticências (...) junto ao nó que está a executar o contentor.

  4. Escolha Reiniciar para reiniciar esse nó e confirme a ação de reinício. O reinício provoca a ativação pós-falha do contentor para outro nó no cluster.

    Vista de nó no Service Fabric Explorer

Dimensionar aplicações e serviços num cluster

Os serviços do Service Fabric podem ser facilmente dimensionados num cluster para se prepararem para a carga nos serviços. Para dimensionar um serviço, tem de alterar o número de instâncias em execução no cluster.

Para dimensionar o serviço de front-end da Web, execute os seguintes passos:

  1. Abra o Service Fabric Explorer no seu cluster; por exemplo, https://containertestcluster.eastus.cloudapp.azure.com:19080.

  2. Clique nas reticências (três pontos) junto ao nó fabric:/Voting/azurevotefront na vista de árvore e escolha Dimensionar Serviço.

    Início do serviço de dimensionamento do Service Fabric Explorer

    Agora, pode optar por dimensionar o número de instâncias do serviço de front-end da Web.

  3. Altere o número para 2 e clique em Dimensionar Serviço.

  4. Clique no nó fabric:/Voting/azurevotefront na vista de árvore e expanda o nó de partição (representado por um GUID).

    Serviço de dimensionamento do Service Fabric Explorer concluído

    Agora, pode ver que o serviço tem duas instâncias. Na vista de árvore, pode ver em que nós as instâncias são executadas.

Através desta simples tarefa de gestão, duplicou os recursos disponíveis para o serviço de front-end processar a carga de utilizador. É importante compreender que não precisa de várias instâncias de um serviço para que o mesmo seja executado de forma fiável. Se um serviço falhar, o Service Fabric certifica-se de que uma nova instância do serviço é executada no cluster.

Clean up resources (Limpar recursos)

Utilize o script de desinstalação (uninstall.sh) fornecido no modelo para eliminar a instância da aplicação do cluster local e anular o registo do tipo de aplicação. Este script demora algum tempo a limpar a instância, pelo que não deve executar o script de instalação imediatamente após este script. Pode utilizar o Service Fabric Explorer para determinar quando a instância foi removida e o tipo de aplicação cujo registo foi anulado.

./uninstall.sh

A forma mais simples de eliminar o cluster e todos os recursos que consome é eliminando o grupo de recursos.

Entre no Azure e selecione a ID de assinatura com a qual você deseja remover o cluster. Pode encontrar o ID da subscrição ao iniciar sessão no portal do Azure. Elimine o grupo de recursos e todos os recursos do cluster com o comando az group delete.

az login
az account set --subscription <guid>
ResourceGroupName="containertestcluster"
az group delete --name $ResourceGroupName

Se tiver terminado de trabalhar com o cluster, pode remover o certificado do arquivo de certificados. Por exemplo:

  • No Windows: utilize o Snap-in da MMC de certificados. Certifique-se de que seleciona A minha conta de utilizador ao adicionar o snap-in. Navegue para Certificates - Current User\Personal\Certificates e remova o certificado.
  • No Mac: utilize a aplicação Keychain.
  • No Ubuntu: siga os passos utilizados para ver os certificados e remova o certificado.

Próximos passos

Neste início rápido, implementou uma aplicação de contentor do Linux num cluster do Service Fabric do Azure, efetuou a ativação pós-falha na aplicação e dimensionou a aplicação no cluster. Para saber mais sobre como trabalhar com contêineres Linux no Service Fabric, continue para o tutorial para aplicativos de contêiner Linux.