‫Antes de expandir nossos serviços para começar a correr em um monte de nós e todos os serviços falando um com o
‫outro, vamos passar por um par de novos conceitos que Swarm traz para a mesa.
‫O primeiro é um novo driver de rede chamado Overlay, e você realmente simplesmente cria uma rede,
‫como você está
‫acostumado a criá-lo, criar rede docker e colocar uma sobreposição de disco rígido.
‫O que é isso é, basicamente, criar uma rede de ponte Swarm-wide onde os contêineres entre hosts na
‫mesma rede virtual podem acessar um ao outro, como se estivessem em uma VLAN.
‫Isto é apenas para comunicação intra-enxame.
‫O driver de sobreposição não desempenha uma enorme quantidade de tráfego que vem para dentro, pois está tentando
‫tirar uma visão global da rede para que você não esteja constantemente mexendo com as configurações de
‫rede em nós individuais.
‫Você também pode ativar a criptografia de rede completa usando IPiece SEC, onde ele realmente configurará túneis IPSec entre
‫todos os diferentes nós do seu enxame.
‫Mas está fora por padrão, apenas por motivos de desempenho.
‫Quando você cria seus serviços, você pode adicioná-los a redes Overlay, ou a uma ou mais redes Overlay.
‫Realmente depende do design da sua aplicação.
‫Você sabe, muitos projetos tradicionais teriam os bancos de dados em uma rede de backend e os
‫servidores da Web em uma rede de frontend. Então, talvez você tenha uma API entre os dois que seria em ambas
‫as redes, ou algo assim.
‫E você pode fazer isso totalmente em Swarm.
‫Vamos ver isso em ação. O que eu quero fazer é querer mostrar como
‫seria se implementássemos o exemplo do Drupal de uma tarefa anterior com o banco de dados do Postgres, como serviços, e depois criamos uma rede de
‫sobreposição para que eles conversassem um com o outro.
‫crie, e isso não mudou para Swarm, além do fato de que vamos usar um novo driver.
‫Primeiro, precisamos criar uma rede, de modo que a rede docker
‫Só vou chamar isso de mydrupal.
‫ESTÁ BEM.
‫Então, eu vou fazer uma rede docker, e você verá que eu tenho uma nova sobreposição. O ingresso está por padrão. Nós vamos conectá-lo à rede mydrupal.
‫Você também verá um novo porque um enxame, que é realmente uma rede de saída que não o nome de criação Vamos chamá-lo de rede psql. Na verdade, a conclusão das tabulações nos nomes da rede.
‫precisamos mexer. Então lembre-se de que preciso adicionar essa variável de ambiente para a senha do Postgres.
‫Então, vamos criar nosso serviço Postgres. do serviço docker. Então podemos nos conectar mais tarde.
‫Então vamos usar a imagem do Postgres. Parece bom.
‫Você notará aqui que não recebemos todo o download da imagem e tudo
‫isso, porque os serviços não podem ser executados em primeiro plano, porque eles precisam passar pelo orquestrador e pelo agendador. Então, podemos fazer um serviço docker, e podemos ver que
‫um deles está em execução.
‫Se nós fizermos um pspl ps psp do serviço docker, podemos ver que isso realmente está sendo executado no Nó 1.
‫Então eu posso fazer um contêiner docker logs psql, e então eu posso ver os logs disso.
‫Sim. Parece que está funcionando.
‫Tudo bem.
‫em frente e apenas chame isso de drupal.
‫Vamos criar nosso outro serviço para que eu vá
‫Também precisamos anexar a essa mesma rede. Então queremos publicar a porta 80:80 como fizemos com um
‫comando de encadernação do docker. E usaremos a imagem Drupal.
‫ESTÁ BEM.
‫Podemos ver que está começando aí. O que faz é que ele É instalado
‫Há um truque. Você pode realmente usar o comando de relógio no Linux para assistir. Ele será por padrão no Ubuntu. ah, veja?
‫basicamente. está repetindo um comando uma e outra vez. Se você apenas colocar o relógio na frente do serviço docker ls, ele continuará funcionando a cada dois segundos Agora, temos um por um.
‫por padrão até. Tudo bem, e então eu vou apenas controlar c disso. executado no Nó 2.
‫Nós podemos fazer um drupal de serviço docker e ver que drupal realmente está sendo
‫Temos o banco de dados rodando no Nó 1.
‫Nós temos o site Drupal rodando no Nó 2.
‫Então, como eles sabem como falar um com o outro?
‫Bem, usando os nomes dos serviços.
‫Se eu colar em um dos endereços IP, ele deveria surgir na instalação do Drupal. E se eu disser
‫o banco de dados aqui, nome da
‫base de dados, nós vamos fazer o postgres novamente, postgres, minha senha.
‫Para o host, assim como quando estivemos com o Compose, criamos os nomes dos serviços no arquivo Compose, aqui, vamos usar o nome do
‫serviço que criamos para o servidor do banco de dados. Então, isso
‫foi psql.
‫Esta tela está basicamente dizendo-nos que é capaz de falar
‫com o banco de dados em todos os nós e configurar o sistema.
‫Essa é a ótima coisa sobre Overlay é realmente apenas funciona como se tudo estivesse na mesma sub-rede.
‫Tudo bem.
‫Então não precisamos disso.
‫Eu vou terminar este exemplo, realmente rápido apenas para mostrar a você a próxima coisa legal sobre Swarm. ESTÁ BEM.
‫Agora, este site está sendo executado. Mas eu tenho três nós, então, como eu sei em qual nó vai estar e qual porta eu preciso para garantir que meu DNS aponte para quando Eu consegui
‫eu crie o nome desse site? Então, se
‫No meu caso, eu tenho três endereços IP, e eu posso o erro lá. você vê, parece que o site está sendo executado em todos os três nós porque estou olhando para os três endereços IP.
‫copiar os três Mas se eu for aqui e faça este drupal de serviço ps, eu sei que ele está apenas executando o nó 2. bem aqui.
‫deles e colocar os três desses endereços IP em e. oops. Eu posso até fazer um serviço docker inspecionar, e ver que, de fato, só tem um endereço IP naquela rede de Então, por que ele está respondendo em todos os três hosts?
‫sobreposição. Isso nos leva ao nosso próximo e novo recurso.
‫