Blog e Artigos Tecnologia

Blog e Artigos Tecnologia

Who am I?

Sou 💻 Desenvolvedor PHP | Laravel #Fullstack #Dev #DevOps #Laravel #PHP #lucena


What I write about


Recent Posts

Implantando serviços ao cluster do Docker Swarm

uma solução de automação pré-configurada, destinada à criação de vários nodes do Docker Engine interconectados que são executados em um modo swarm e constituem um cluster altamente disponível e confiável.

Implantando serviços ao cluster do Docker Swarm

– uma solução de automação pré-configurada, destinada à criação de vários nodes do Docker Engine interconectados que são executados em um modo swarm e constituem um cluster altamente disponível e confiável.

A solução fornece os principais benefícios para a hospedagem de aplicativos baseada no Docker, permitindo executar imagens do Docker como serviços swarm e escalá-los facilmente até um número desejado de réplicas. Isso garante alta disponibilidade, proteção contra falha e até distribuição de carga de trabalho entre membros do cluster.

docker-swarm-cluster.png

Operações básicas de gerenciamento e implantação de serviços

Se você ainda não tem um cluster do Docker Swarm, siga as instruções vinculadas para obtê-lo em questão de minutos e conecte-se ao seu swarm de qualquer maneira preferencial. Por exemplo, acesso via GUI Portainer, Jelastic SSH Gate e Docker Machine.

Dica: Começando com o release 5.4 do Jelastic, é possível estabelecer uma conexão com o contêiner necessário, diretamente do painel, por meio do emulador Web SSH incorporado.

Depois que uma conexão com o node gerenciador do Docker Swarm for estabelecida (estamos trabalhando no Jelastic SSH Gate neste exemplo), você poderá começar a gerenciar com seu cluster. Por exemplo, verifique a lista de nodes em que seu cluster swarm consiste, executando a próxima linha de código:

docker node ls

SJR.jpg

Onde:

{name}: qualquer nome desejado para o processo {image}: qualquer imagem do Docker desejada (por exemplo, dockersamples/static-site)

  1. Verifique seus serviços com o comando apropriado:
docker service ls

Como você pode ver, há um gerenciador e dois contêineres de trabalho em nosso cluster swarm. Os nodes gerenciadores elegem automaticamente um único líder para conduzir tarefas de orquestração, enquanto os gerentes restantes (se houver) são marcados como “acessíveis” para tolerar falhas.

  1. Vamos atualizar nosso serviço para melhorar a confiabilidade por meio da replicação e, simultaneamente, publicá-lo para permitir o acesso pela Internet.
docker service update –replicas {replicas} –publish-add {ports} {service}

Onde:

{replicas}: várias réplicas para criar para o processo {ports}: duas portas separadas por dois pontos (isto é, publicadas – para publicar o serviço e a porta de destino na imagem do Docker implementada), por exemplo 8080:80 {service}: nome de um serviço a ser atualizado Espere um minuto para que todas as réplicas sejam configuradas.

Agora, você pode acessar sua imagem através da porta especificada (8080 no nosso caso):

access-to-image-via-specified-port.png

  1. Para remover qualquer processo, chame a seguinte linha de código:
docker service rm {service}

Essa é a base do gerenciamento de serviços swarm; para aprender mais opções avançadas, por favor consulte a documentação oficial.

Implantação automatizada de serviços com o arquivo Stack Para implantar automaticamente seu serviço, você precisará do arquivo apropriado do Docker Compose, no qual todas as ações necessárias para implantação são listadas.

  1. Você pode criar esse arquivo stack usando qualquer editor (por exemplo, vim) ou buscá-lo a partir de uma fonte externa (por exemplo, com curl).

No nosso caso, baixamos as fontes stack para o exemplo do aplicativo de votação, que ajudará a descobrir se o ponto A (Gatos) é mais popular que o ponto B (Cães) de acordo com as escolhas reais do usuário. O resultado dessa votação será exibido como uma porcentagem relativa das preferências dos eleitores.

  1. Para implantar seu aplicativo, use o seguinte comando e forneça o arquivo stack:
    docker stack deploy -c {compose-file} {name}

    Onde:

{compose-file} – o arquivo que você preparou na etapa anterior (docker-stack.yml no nosso caso) {name} – qualquer nome preferido (por exemplo, VotingApp)

  1. Agora, vamos verificar os serviços em execução no cluster swarm com:
docker service ls

SSSSSS.jpg

Como você pode ver, todos os serviços especificados no arquivo stack do docker já foram iniciados (espere um minuto se algumas REPLICAS ainda não estiverem ativas). Além disso, dentro da coluna PORTAS, você pode encontrar o número da porta em que um determinado serviço é executado (por exemplo, 5000 para votação e 5001 para saída de resultados no nosso caso).

  1. Finalmente, acesse seu serviço através do navegador e adicione a porta apropriada (se necessário) ao endereço:

bhe.jpg

Desta forma, você obtém uma confiabilidade extra de serviço com a proteção de falha e até mesmo a distribuição de cargas de trabalho garantidas automaticamente ao hospedar seus serviços dockerizados no cluster do Docker Swarm. E a solução Docker Swarm, pré-embalada pela Jelastic para instalação com apenas um clique, fornece todos os benefícios acima mencionados em questão de minutos.