Criar um enxame Docker no Alpine Linux 3.9.0

Introdução

Este guia mostra como criar e configurar um enxame Docker usando vários servidores Alpine Linux 3.9.0 e o Portainer. Esteja ciente de que o Vultr oferece um aplicativo Docker com um clique que atualmente suporta o CentOS 7 x64 e o Ubuntu 16.04 x64.

Pré-requisitos

Para começar, você precisará de pelo menos dois servidores VC2 executando o Alpine Linux 3.9.0. No seu enxame Docker, um desses servidores atuará como uma manager nodeinterface com redes externas e delegará tarefas nos nós dos trabalhadores. O outro servidor atuará como worker node- executando tarefas delegadas a ele pelo nó do gerente.

Observe que você pode iniciar mais de dois servidores se o aplicativo exigir redundância e / ou mais poder de computação, e as etapas fornecidas neste guia ainda serão aplicadas.

Desdobramento, desenvolvimento

Visite a interface de implantação do servidor Vultr .

Verifique se a Vultr Cloud (VC2)guia está selecionada na parte superior da página.

Você pode selecionar qualquer local da Server Locationseção; no entanto , todos os servidores devem estar no mesmo local ; caso contrário, não será possível implantar um enxame do Docker neles.

Selecione a ISO Libraryguia da Server Typeseção e escolha a Alpine Linux 3.9.0 x86_64imagem.

Selecione uma opção apropriada na Server Sizeseção. Este guia usará o tamanho do servidor SSD de 25 GB, mas isso pode ser insuficiente para atender aos requisitos de recursos do seu aplicativo. Embora o Vultr facilite a atualização do tamanho de um servidor após o lançamento, você deve considerar cuidadosamente qual o tamanho do servidor que seu aplicativo precisa para otimizar.

Na Additional Featuresseção, você deve selecionar a Enable Private Networkingopção Embora as outras opções não sejam necessárias para seguir este guia, você deve considerar se cada uma delas faz sentido ou não no contexto do seu aplicativo.

Se você já ativou a Multiple Private Networksopção em sua conta, precisará selecionar uma existente ou criar uma nova rede privada para seus servidores. Se você não o ativou, poderá ignorar esta seção. Para obter informações sobre como configurar manualmente redes privadas, consulte este guia .

Pule a Firewall Groupseção por enquanto. Somente o servidor que atua como um nó gerenciador no enxame do Docker precisará de portas expostas, e isso deve ser configurado após a implantação do servidor.

Na parte inferior da página, você deve inserir um Server Qtyde pelo menos dois. Como mencionado anteriormente, você pode precisar de mais de dois servidores, mas dois são suficientes para seguir este guia.

Por fim, na Server Hostname & Labelseção, digite nomes e rótulos significativos e memoráveis ​​para cada servidor. Para os fins deste guia, o nome do host e o rótulo do primeiro servidor serão docker-managere Docker Manager, respectivamente - docker-workere Docker Workerpara o segundo, respectivamente.

Após verificar duas vezes todas as suas configurações, você pode clicar no Deploy Nowbotão na parte inferior da página para iniciar seus servidores.

Instale o Alpine Linux 3.9.0 nos servidores

Como você escolheu um sistema operacional da biblioteca ISO da Vultr, precisará instalar e configurar manualmente o Alpine Linux 3.9.0 em cada servidor.

Depois de dar a Vultr um minuto ou dois para alocar seus servidores, clique no more optionsícone de três pontos para o Docker Managerservidor na interface de gerenciamento do servidor e escolha a View Consoleopção.

Você deve ser redirecionado para um console com um prompt de login. Caso contrário, aguarde mais um minuto para o Vultr concluir a implantação de seus servidores.

Nesse prompt de login, digite rootcomo o nome de usuário. A versão ao vivo do Alpine Linux 3.9.0 (que é o que seus servidores estão executando no momento) não requer que o superusuário insira uma senha ao efetuar login.

Após o login bem-sucedido na conta raiz, você verá uma mensagem de boas-vindas seguida por um prompt de shell semelhante ao seguinte:

localhost:~# 

Para iniciar o instalador do Alpine Linux, digite o seguinte comando:

# setup-alpine

Primeiro, escolha um layout de teclado apropriado. Este guia usará o uslayout e a variante.

Ao definir o nome do host, escolha o mesmo nome que você definiu para este servidor durante a implantação. Se você seguiu exatamente este guia, o nome do host deve ser docker-manager.

Duas interfaces de rede devem estar disponíveis: eth0e eth1. Se você vir apenas eth0isso, significa que você não configurou a rede privada de seus servidores corretamente. Inicialize eth0usando dhcpe inicialize eth1usando o endereço IP privado, máscara de rede e gateway que este servidor foi atribuído durante a implantação. Você pode acessar esses detalhes na interface de configurações do seu servidor. Quando solicitado, não execute nenhuma configuração manual de rede.

Digite uma nova senha para a conta raiz e selecione um fuso horário apropriado para o local em que você escolheu implantar esses servidores.

Se você pretende usar um proxy HTTP / FTP, insira seu URL, caso contrário, não configure um URL de proxy.

Escolha um cliente NTP para gerenciar a sincronização do relógio do sistema. Este guia será usado busybox.

Quando solicitado a usar um espelho de repositório de pacotes, escolha um explicitamente digitando seu número; detectar automaticamente e selecionar o mais rápido digitando f; ou edite manualmente o arquivo de configuração do repositório digitando e, o que não é recomendado, a menos que você esteja familiarizado com o Alpine Linux. Este guia usará o primeiro espelho.

Se você planeja usar o SSH para acessar seus servidores ou hospedar um sistema de arquivos baseado em SSH, selecione um servidor SSH para usar. Este guia será usado openssh.

Quando solicitado a usar um disco, escolha disco vdacomo systipo.

O Alpine Linux 3.9.0 agora deve estar instalado no seu servidor. Repita esse processo para todos os outros servidores implantados anteriormente, garantindo que você substitua os valores corretos pelo nome do host e pela eth1interface de rede.

Configuração do servidor pós-instalação

Neste ponto, seus servidores ainda estão executando a versão ISO ao vivo do Alpine Linux 3.9.0. Para inicializar a partir da instalação do SSD, visite a interface de configurações do seu servidor, navegue até a Custom ISOentrada do menu lateral e clique no Remove ISObotão Isso deve reiniciar o servidor. Caso contrário, reinicie manualmente.

Depois que o servidor terminar de reiniciar, volte para o console da web do servidor Docker Manager.

Faça login na conta raiz usando a senha que você definiu anteriormente durante o processo de instalação.

Ative o repositório de pacotes da comunidade descomentando a terceira linha de /etc/apk/repositoriesuso vi. Você pode ativar os repositórios de borda e teste de maneira semelhante, mas eles não são obrigados a seguir este guia.

Sincronize o índice do pacote local do servidor com o repositório remoto selecionado anteriormente, digitando o seguinte comando shell:

# apk update

Em seguida, atualize pacotes desatualizados:

# apk upgrade

Como antes, repita esse processo de configuração para cada servidor implantado anteriormente.

Instale o Docker em seus servidores

Antes de instalar o próprio pacote do Docker, convém criar um dockerusuário separado . Você pode fazer isso usando o seguinte comando:

# adduser docker

Nota: Este novo usuário e quaisquer usuários adicionados ao novo dockergrupo terão privilégios de root assim que o pacote do Docker for instalado. Veja o seguinte problema no repositório Moby Github:

Devido à --privilegedjanela de encaixe, qualquer pessoa adicionada ao grupo 'janela de encaixe' é equivalente à raiz. Qualquer pessoa no grupo de janelas de encaixe possui uma porta traseira em torno de todas as políticas de escalonamento de privilégios e auditoria no sistema.

Isso é diferente de alguém ser capaz de executar o sudo na raiz, onde eles têm política e auditoria aplicada a eles.

Se você deseja dar permissão ao sudo para o dockerusuário, primeiro instale o sudopacote:

# apk add sudo

Em seguida, crie um sudogrupo:

# addgroup sudo

Por fim, adicione o dockerusuário ao sudogrupo:

# adduser docker sudo

Agora você pode seguir a etapa 4 deste guia para concluir a configuração do sudo.

Neste ponto, você está pronto para instalar o pacote do Docker. Observe que não é estritamente necessário ter um dockerusuário com capacidade sudo separado para instalar e configurar o Docker, mas este guia segue essa convenção.

Instale o pacote do Docker com o seguinte comando:

# apk add docker

Ative o script init do Docker:

# rc-update add docker

Por fim, inicie o daemon do Docker:

# rc-service docker start

Você pode verificar se o Docker está em execução com este comando:

# docker info

Como na última vez, repita esse processo de instalação do Docker para cada servidor implantado no início.

Inicialize um enxame Docker com um nó de gerente e um nó de trabalho

Com toda essa configuração resolvida, você finalmente está pronto para criar o enxame do Docker.

Crie um enxame e adicione um nó de gerente

Navegue de volta para o console da web do seu Docker Managerservidor. Você configurará este servidor como um nó gerenciador no seu enxame. Se você optou por criar o dockerusuário anteriormente, efetue login usando essa conta em vez do superusuário.

Digite o seguinte comando, mas substitua 192.0.2.1pelo endereço IP privado (e não público), ao qual seu Docker Managerservidor foi atribuído:

$ docker swarm init --advertise-addr 192.0.2.1

O Docker exibirá um comando que você pode executar em outros servidores na rede privada para adicioná-los como nós de trabalho a esse novo enxame. Salve este comando.

Adicionar um nó de trabalho

Agora navegue até o console da web do seu Docker Workerservidor, entrando com o dockerusuário se você o criou.

Para adicionar este servidor como um nó de trabalho ao swarm que você acabou de criar, execute o comando que você salvou na saída do comando de criação do swarm. Será semelhante ao seguinte:

$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377

O Docker exibirá se o nó conseguiu ingressar no enxame. Se você encontrar problemas ao adicionar nós de trabalho ao enxame, verifique sua configuração de rede privada e consulte este guia para solucionar problemas.

Se você implantou mais de dois servidores no início, poderá adicionar o restante como nós de trabalho ao seu enxame usando o comando acima, aumentando a quantidade de recursos disponíveis para seu aplicativo. Como alternativa, você pode adicionar nós de gerente adicionais, mas isso está além do escopo deste guia.

Implante o Portainer com SSL para gerenciar seu enxame Docker

Nesse ponto, seu enxame Docker está pronto para uso. No entanto, você pode, opcionalmente, iniciar uma pilha do Portainer no nó do gerente em seu enxame. O Portainer oferece uma interface web conveniente para gerenciar seu enxame e os nós nele.

Agora é hora de criar um grupo de firewall para seu enxame. A menos que seu aplicativo exija especificamente, exponha apenas portas nos nós do gerente . A exposição de portas nos nós de trabalho sem uma consideração cuidadosa pode introduzir vulnerabilidades.

Navegue até a interface de gerenciamento do firewall e crie um novo grupo de firewall. Seu aplicativo deve ditar quais portas expor, mas você deve, no mínimo, expor a porta 9000para o Portainer. Aplique esse grupo de firewall ao Docker Managerservidor.

Embora não seja necessário, é altamente recomendável proteger o Portainer com SSL. Para fins deste guia, você usará apenas um certificado OpenSSL autoassinado, mas considere usar o Let's Encrypt na produção.

Navegue para o console da web do Docker Managerservidor, efetue login usando o dockerusuário e use os seguintes comandos para gerar um certificado OpenSSL autoassinado:

$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650

Crie um novo arquivo,, ~/portainer-agent-stack.ymlcom o seguinte conteúdo:

version: '3.2'

services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      CAP_HOST_MANAGEMENT: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /:/host
    networks:
      - agent_network
    deploy:
      mode: global

  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
    ports:
      - target: 9000
        published: 9000
        protocol: tcp
        mode: host
    volumes:
      - portainer_data:/data
      - /home/docker/certs:/certs
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  agent_network:
    driver: overlay
    attachable: true

volumes:
  portainer_data:

Após modificar este arquivo de configuração da pilha do Docker para estar em conformidade com seus requisitos, você pode implantá-lo:

$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer

Para verificar se o Portainer está funcionando, execute o seguinte comando após ter dado ao Docker um ou dois minutos para implantar a pilha:

$ docker ps

Você verá dois contêineres com as imagens portainer/portainer:lateste portainer/agent:latest, verificando se o Portainer foi iniciado corretamente.

Agora você pode configurar e gerenciar seu enxame Docker visitando o endereço IP público do Docker Managerservidor na porta 9000usando HTTPS.



Leave a Comment

Instalando o Docker no Ubuntu 14.04

Instalando o Docker no Ubuntu 14.04

Usando um sistema diferente? O Docker é um aplicativo que permite implantar programas executados como contêineres. Foi escrito no popular programa Go

Configurar Sentry via Docker no Ubuntu 16.04

Configurar Sentry via Docker no Ubuntu 16.04

Usando um sistema diferente? Introdução O Sentry é uma solução de código aberto para rastreamento de erros. O Sentry rastreia exceções e outras mensagens úteis

Instale o Rancher Server no RancherOS

Instale o Rancher Server no RancherOS

O RancherOS é um sistema operacional incrivelmente leve (apenas cerca de 60 MB) que executa um daemon do Docker do sistema como PID 0 para executar serviços do sistema

Como instalar o Harbor no CentOS 7

Como instalar o Harbor no CentOS 7

O Harbor é um servidor de registro de classe empresarial de código aberto que armazena e distribui imagens do Docker. Harbor estende o Docker Distribution b de código aberto

Como usar o Docker: Criando seu primeiro contêiner Docker

Como usar o Docker: Criando seu primeiro contêiner Docker

Este tutorial explica os conceitos básicos de introdução ao Docker. Presumo que você já tenha o Docker instalado. As etapas deste tutorial funcionarão em um

Equilíbrio de carga com o Docker

Equilíbrio de carga com o Docker

Ao executar um aplicativo Web, normalmente você deseja aproveitar ao máximo seus recursos sem precisar converter seu software para usar multithreading

No CoreOS, configure seu próprio registro do Docker

No CoreOS, configure seu próprio registro do Docker

Todos conhecemos e amamos o Docker, uma plataforma para criar, gerenciar e distribuir contêineres de aplicativos em várias máquinas. A Docker Inc. fornece um serviço t

Implantar um aplicativo Node.js usando o Docker

Implantar um aplicativo Node.js usando o Docker

Este artigo mostra como implantar o aplicativo Node em um contêiner do Docker. Nota: Este tutorial pressupõe que você tenha o Docker instalado e leia

Implante o Kubernetes com o Kubeadm no CentOS 7

Implante o Kubernetes com o Kubeadm no CentOS 7

Visão geral Este artigo tem como objetivo ajudá-lo a colocar um cluster do Kubernetes em funcionamento com o kubeadm rapidamente. Este guia estará implantando dois servidores, em

Instalando o docker-compose no CoreOS

Instalando o docker-compose no CoreOS

Este artigo explica como instalar o docker-compose no CoreOS. No CoreOS, a pasta / usr / é imutável, portanto o caminho padrão / usr / local / bin não está disponível para

Implante e gerencie com segurança contêineres LXC no Ubuntu 14.04

Implante e gerencie com segurança contêineres LXC no Ubuntu 14.04

Os contêineres LXC (contêineres do Linux) são um recurso do sistema operacional no Linux que pode ser usado para executar vários sistemas Linux isolados em um único host. Thes

Instale o Docker CE no Ubuntu 18.04

Instale o Docker CE no Ubuntu 18.04

Introdução O Docker é um aplicativo que nos permite implantar programas executados como contêineres. Foi escrito na popular linguagem de programação Go

Introdução ao Kubernetes no CentOS 7

Introdução ao Kubernetes no CentOS 7

O Kubernetes é uma plataforma de código aberto desenvolvida pelo Google para gerenciar aplicativos em contêineres em um cluster de servidores. Ele se baseia em uma década e

Implantar um aplicativo PHP usando o Docker-compone

Implantar um aplicativo PHP usando o Docker-compone

Os aplicativos PHP geralmente são compostos por um servidor da web, um sistema de banco de dados relacional e o próprio interpretador de linguagem. Neste tutorial, estaremos alavancando

Instale o Rancher no Ubuntu 16.04

Instale o Rancher no Ubuntu 16.04

Usando um sistema diferente? Introdução O Rancher é uma plataforma de código aberto para executar contêineres e criar um serviço de contêiner particular. Rancheiro é a base

Sessão complicada com Docker Swarm (CE) no Debian 9

Sessão complicada com Docker Swarm (CE) no Debian 9

Usando um sistema diferente? Introdução O Docker Swarm transforma seus servidores individuais em um cluster de computadores; facilitando o dimensionamento, alta disponibilidade e

Instalando o Docker CE no CentOS 7

Instalando o Docker CE no CentOS 7

A tecnologia de contêiner do Docker permite executar aplicativos em um ambiente específico e isolado. Docker Community Edition (CE) é o novo nome para o fre

Introdução ao SQL Server 2017 (MS-SQL) no CentOS 7 com Docker

Introdução ao SQL Server 2017 (MS-SQL) no CentOS 7 com Docker

Pré-requisitos Docker engine 1.8+. Mínimo de 4 GB de espaço em disco. Mínimo de 4 GB de RAM. Etapa 1. Instalar o Docker Para instalar o SQL-Server, o Docker deve

Instalando o Docker CE no Debian 9

Instalando o Docker CE no Debian 9

Usando um sistema diferente? Introdução O Docker é um aplicativo que permite a implantação de software em contêineres virtuais. Foi escrito no G

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.