‫Esta será a primeira palestra onde realmente vamos usar vários hosts ou nós, ou instâncias, Vamos configurar um enxame de 3 nós em todos
‫ou o que você quiser. múltiplos Infelizmente, não podemos fazer essa parte com o Docker embutido na
‫sua máquina porque isso só nos proporcionará um SO. Precisamos de três sistemas operacionais Linux para jogar com este próximo conjunto de recursos.
‫A primeira opção que você vai ter é usar play-with-docker. com.
‫É a maneira mais fácil de começar.
‫Ele vem com o Docker pré-instalado. Leva segundos para provisionar três máquinas diferentes
‫e não requer nenhum investimento no seu final. Mas isso significa que todas as quatro horas irá limpar todo o trabalho que você realizou.
‫dias, então esta pode não ser a melhor opção para você.
‫Então, se você acha que vai fazer o resto desta seção ao longo dos Mas se você se concentrar por algumas horas, você pode superar a maioria, se
‫não tudo, do material de enxame de vários nós usando o Play With Docker em uma única sessão.
‫Outra opção que você possui é que você pode usar o docker-machine,
‫que ainda não é algo sobre o qual falamos, mas é uma ferramenta de linha de comando que realmente é instalada com o Docker para Windows e Docker para Mac.
‫Você pode baixá-lo para o Linux, e basicamente é uma ferramenta de automação para
‫o provisionamento de máquinas virtuais localmente e na Internet, e depois configura automaticamente o Docker para você.
‫A maneira padrão que funciona é com o VirtualBox, que você pode instalar gratuitamente. você estiver executando três máquinas virtuais localmente, cada uma delas provavelmente precisa de um
‫show de RAM ou então para executar muitos desses exemplos.
‫Mas isso significa que, se Então, você precisará de uma máquina com uma boa quantidade de RAM nela. Outra opção, e a que
‫eu vou usar para muitas dessas demonstrações e passeios, é o DigitalOcean.
‫Eu simplesmente recomendo o DigitalOcean apenas porque
‫eles têm o serviço mais barato e fácil de começar, e eles executam tudo no SSD, por isso é bom e rápido. Você pode realmente usar isso em uma configuração muito, muito semelhante à que seria a produção
‫porque você está usando três máquinas virtuais reais, na nuvem, e demora cerca
‫de um minuto para lançar cada máquina virtual.
‫Se você está pensando que isso pode ser uma opção, você pode usar meu código de referência e
‫as referências a esta seção para obter seus primeiros $ 10 grátis.
‫Se você só vai demorar alguns dias para passar por esse enxame, você pode provisionar três
‫nós de US $ 10 por mês e mantê-los por dias ou por semana.
‫E isso pode caber dentro do orçamento de US $ 10, de forma tecnicamente, não lhe custaria nada.
‫E, finalmente, há tantas maneiras de instalar o Docker, e isso é
‫realmente tudo o que você precisa é de três máquinas com o Docker instalado neles. Você pode usar Docker Machine.
‫Ele criou drivers que permitem que você use isso para provisionar instâncias do Amazon, ou instâncias
‫Azure, ou DigitalOcean Droplets, ou nó do Google
‫Compute ou qualquer lugar onde você possa obter uma máquina virtual Linux, você pode realmente instalar Docker com um script automatizado de obter. docker. com.
‫Francamente, eu prefiro o get. docker. somente porque o Docker Machine pode economizar alguns passos, especialmente para locais como o Amazon e o Azure que exigem que você forneça
‫muitas coisas diferentes antes de
‫conseguir apenas provisionar uma máquina virtual. Mas você provavelmente
‫não vai usar a Docker Machine em produção.
‫É uma ferramenta para simplesmente automatizar ambientes de dev e testar. Nunca foi realmente projetado para configurar todas as configurações de produção que
‫você pode precisar para um enxame de vários nós.
‫Não há nada inerentemente errado com isso, mas geralmente obtém. docker. com funciona em todas as principais distribuições Linux e
‫não demora mais do que realmente usando o Docker Machine em si.
‫Eu vou dar-lhe um exemplo muito
‫rápido de apenas obter qualquer um desses cenários até o ponto em que o Docker está instalado. Então todos eles serão muito semelhantes na
‫forma como criamos o enxame e fazemos nossos serviços.
‫Então não pense que você tem que fazê-lo do jeito que eu faço.
‫Na verdade, estamos apenas tentando obter as informações do Docker para realmente trazer informações e, em
‫seguida, apenas para garantir que os três nós tenham acesso em rede uns aos outros e eles estão em uma rede bem conectada.
‫Então, idealmente, eles deveriam estar na mesma rede.
‫Se você fosse usar o Play With Docker, na verdade, apenas vá para play-with-docker. caixa para eu não sou um robô.
‫com e marque na
‫E se isso lhe dá a tela do CAPTCHA, siga apenas.
‫Tudo bem. Você verá que está contando até quatro horas.
‫Mas se eu simplesmente clicar na instância de criação e depois clicar duas vezes mais, ela criará
‫três ambientes virtuais muito rapidamente.
‫Como uma nota lateral, isso realmente está usando o Docker no Docker, que é uma tecnologia muito bonita, onde atualmente estamos executando o Docker
‫dentro de um recipiente Docker.
‫por outros capitães do Docker e pela equipe do Docker, é realmente difícil dizer uma diferença.
‫Mas nesta configuração com o Play With Docker, que foi criado
‫Se eu for no nó 1, eu já vejo que as informações do Docker me dão a versão mais recente. E se eu tentei ping ping2, ele realmente reconhece nomes amigáveis, por
‫isso tornará mais
‫fácil se comunicar de um lado para o outro entre eles.
‫Então, se isso é algo que você quer tentar, é uma maneira ótima e fácil em máquinas de baixa potência ou se você simplesmente não quer aproveitar o tempo para configurar um
‫ambiente nas próximas quatro horas.
‫A opção dois é usar o docker-machine. Se você tiver instalado, ele deve ser pelo menos a
‫versão 10 se não for mais recente.
‫Você saberá se está instalado porque você digitará o comando docker-machine da sua linha de
‫comando e funcionará ou não.
‫Se você precisa baixá-lo para o seu sistema operacional Linux específico, então você pode acessar a documentação do Docker, que
‫realmente lhe dará uma linha de curvatura rápida para baixá-lo.
‫Se você estiver usando a ToolBox no Windows 7 e 8, ou Docker para Windows no Windows 10, ou Docker para Mac no
‫Mac OS, ele já estará atualizado sobre esses sistemas operacionais para você.
‫Se você quiser usar a opção VirtualBox, que é o padrão,
‫você precisa simplesmente passar para a caixa virtual. org e baixe a versão mais recente para o seu sistema operacional. nada com o VirtualBox.
‫E você nem precisa fazer
‫Ele só precisa ser instalado. E, em seguida, a partir da sua linha de comando, você pode
‫simplesmente digitar
‫docker-machine create node1, e isso realmente funcionará através da criação de uma máquina virtual com o BusyBox, que é uma distribuição Linux muito leve.
‫Isso realmente funcionará através da criação de uma máquina Linux muito leve, e você apenas repetirá
‫esses dois comandos para node2 e 3.
‫Se você precisar de mais informações em um Docker Machine, você pode realmente ver a
‫seção de referência para links de tutorial.
‫Uma vez que suas máquinas são criadas, você realmente tem duas opções para como você pode acessar essas máquinas.
‫Você pode usar o ssh docker-machine e, em seguida, o nome
‫do nó que você criou e que irá ajudá-lo diretamente naquela máquina.
‫Ou você pode usar o comando de ambiente.
‫Então, o comando docker-machine
‫env e, em seguida, o nome da máquina que você deseja, lhe dará
‫algum resultado, e você pode cortar e colar essas opções na sua linha de comando ou pode copiar e colar a opção inferior, e isso será na verdade, crie a variável de ambiente de modo
‫que quando eu executo meu comando docker, porque novamente, a CLI do Docker só precisa saber para o qual o host do Docker deve conversar. falando com sua máquina local.
‫E, por padrão, está
‫Mas isso acabou de reprogramá-lo para falar com o
‫Docker Machine node1.
‫Se eu fizer informações do docker, você verá que seu nome é node1 porque é
‫esse o que realmente estou operando.
‫Para o último exemplo, vou usar o DigitalOcean, no qual criei uma conta.
‫Aqui, eles chamam de Gate Drops. Eu recomendo
‫se você não tem um motivo específico para executar outro sistema operacional, para começar com o Ubuntu 16. distribuição do Linux a suportar os recursos do Docker mais novos.
‫04 porque isso tende a ser a primeira
‫Então, esse é o padrão lá.
‫Então eu recomendaria para o restante deste curso para nós usar o servidor de US $ 10 por mês. Você pode fugir com o servidor de US $
‫5 por mês, mas pode ficar um pouco lento
‫durante algumas das demonstrações posteriores quando fazemos o monitoramento e o log de contêineres em cima de nossos aplicativos.
‫Então você pode escolher o centro de dados mais próximo de você. Então, a única outra opção é adicionar uma chave SSH.
‫e depois carrega o público no DigitalOcean, há um ótimo tutorial que eles têm para isso que
‫você pode encontrar nos recursos desta seção.
‫Se você não está familiarizado com a forma de criar sua própria chave SSH localmente
‫Na parte inferior, eu vou criar três máquinas, e eu as chamarei de nó1, 2 e 3.
‫Então eu preciso esperar provavelmente cerca de 60 segundos e eles estarão prontos para mim. Clicando no botão de cópia e depois ssh root @ o endereço IP.
‫Você poderia usar os endereços IP aqui. salte sobre essas máquinas. E se a sua chave SSH estiver configurada corretamente em
‫sua máquina, então ela logará automaticamente com essa chave.
‫Mas na seção de recursos, eu dei um exemplo de como configurar um. configuração ssh que permitirá que
‫você tenha esses três nós em uma configuração para que você simplesmente possa chamá-los de nó1, nodo2,
‫nó3, em vez de ter que lembrar seus endereços IP, caso você esteja fazendo isso durante vários dias .
‫arquivo de Essa é realmente uma maneira fácil de entrar e sair desses servidores.
‫Se você usou Docker Machine, ou se você usou Play
‫With Docker, o Docker já está instalado e você está se preparando para criar seu enxame.
‫Mas se você usa o DigitalOcean, ou você roote suas próprias VMs, então você precisa instalar o Docker.
‫A maneira mais fácil de fazer isso, que eu gosto de usar, é usar o script para obter. docker. com.
‫Você pode ver exemplos aqui de como usar esse script para obter a versão de produção
‫atual do Docker em sua máquina.
‫possuem a versão mais recente do Docker instalada e estamos prontos para configurar o nosso enxame.
‫Agora, todos os meus três servidores
‫Mais uma vez, tudo o que é necessário é que esses três nós possuem redes sólidas entre si e
‫as portas específicas são abertas.
‫Se você estiver curioso sobre os portos do enxame, procure nos recursos desta seção, onde eu realmente tenho um link para minha própria lista das portas de
‫firewall necessárias para que o Swarm funcione.
‫Se você se lembrar antes, fizemos o injetor do encanador. Agora, neste caso, que é bastante comum em servidores em nuvem, quer que nós especifiquemos um endereço IP para anunciar
‫o serviço Swarm.
‫Você deseja usar um endereço IP acessível a partir dos outros servidores.
‫Neste caso, vou usar o endereço IP
‫público para o meu host DigitalOcean.
‫E nós vamos lá.
‫Até agora, isso é exatamente como em nossa máquina local.
‫Desta vez, porém, vou copiar o comando de junção do enxame e passar ao nó2 e adicioná-lo.
‫E nós vamos lá.
‫Este nó é agora uma parte do enxame.
‫Então, voltamos para node1, docker node ls, e agora temos dois.
‫Você notará que o segundo nó é apenas um trabalhador. Porque, como diz, se queríamos que fosse um gerente, devíamos ter obtido esse token
‫de gerente. Mas não se preocupe. Na verdade, podemos atualizar
‫esse trabalhador para promovê-lo para ser um gerente.
‫Mas se acabarmos no nó2, note que não consigo usar comandos Swarm. Porque os trabalhadores não são realmente privilegiados.
‫Eles não têm acesso para controlar o enxame.
‫Então, eles não poderão usar nenhum dos comandos Swarm que costumamos usar nos gerentes. O que eu estava fazendo lá foi clicar Tab para conclusão da guia, que é sempre uma
‫De volta ao nó1 e ao gerente, vou fazer uma atualização do nó docker. característica fantástica no Docker, especialmente com tantos recursos. Estava me fazendo
‫passar por cada passo de como usar esse comando de atualização.
‫Agora eu terminei esta atualização final e mudou o node2.
‫Agora, se eu fizer meu nó docker ls, você verá que agora é considerado acessível.
‫Mas o nó original ainda é o líder. Por sinal, o pequeno asterisco? Isso significa que é o nó
‫que você está falando atualmente.
‫Para o nó3, vamos adicioná-lo como um gerente por padrão.
‫Precisamos voltar
‫ao nosso comando original do enxame docker, e então precisamos obter o gerente join-token.
‫Você pode obter esses tokens a qualquer momento.
‫Você não precisa gravá-los ou salvá-los.
‫Eles fazem parte da configuração de enxame e armazenados criptografados no disco, então não se preocupe com isso.
‫Você também pode mudar isso caso eles possivelmente sejam expostos ou você talvez
‫obtenha um servidor que possa ter uma vulnerabilidade nele e você quer se certificar de que nenhum nó pode se juntar ao enxame da chave antiga,
‫você pode girar essas chaves .
‫Eu vou copiar isso, colá-lo no node3.
‫E nós vamos lá. Voltar no nó1.
‫Se eu fizer um nó docker novamente, você verá que eu tenho três nós. gerente indicando que eles são gerentes.
‫E todos têm um status de
‫Então, agora temos um enxame redundante de 3 nós, com três gerentes. Vamos fazer a mesma coisa que fizemos
‫anteriormente, o
‫serviço docker crie ping alpino 8. 8. 8. 8 Só dessa vez,
‫vamos
‫dar três réplicas.
‫e veremos que três
‫dos três já estão em execução.
‫E, em seguida, faça um serviço docker,
‫Se eu fiz um nó de docker, posso realmente ver o nó local estar executando essa tarefa ou um contêiner.
‫Eu realmente posso especificar o nó, o nó2, e ele me dará apenas os contêineres em execução no nó2.
‫Se eu quisesse obter uma lista completa, eu poderia fazer um serviço Deixe-me expandir a
‫de docker ps e, em seguida, sono marrom é o nome que deu nosso serviço. E você verá aqui. tela um pouco. Você pode ver aqui que está listando todas as nossas três tarefas.
‫Uma vez que você tenha criado este enxame, você normalmente não
‫precisa estar digitando comandos em todos os nós diferentes. Você pode realmente operar todo o enxame, para a maioria das coisas, do nó1.
‫por enquanto, toque-se na parte de trás porque você possui um cluster de enxame totalmente operacional.
‫Então, vamos fazer muito do nosso trabalho do nó 1 em conferências futuras, mas
‫
‫sistemas operacionais. os três desses nós.