Crie um cluster local com Vagrant/CoreOS/Docker

Crie um cluster local com Vagrant/CoreOS/Docker

Estou tentando criar um ambiente local para fins de teste composto por:

  • um cluster Vagrant CoreOS (3 nós)
  • um contêiner Docker iniciado com uma imagem Nginx carregada, iniciada em um nó

Instalei com sucesso o Vagrant e o CoreOS. O Etcd está instalado e funcionando e joguei muito com o Fleet. Também lancei um contêiner Nginx para lançar serviços de frota. O que realmente não consigo descobrir é:

  • Como posso rotear o tráfego em um contêiner específico? Quero que apontando meu navegador local para um endereço local (ou seja, example.dev), o cluster responda com o contêiner Nginx correto (colocado em algum lugar do cluster).
  • Um proxy é uma solução apropriada? Se não, existe algo criado para esse fim?

Agradecemos antecipadamente e fique à vontade para perguntar mais detalhes que posso ter esquecido!

Responder1

A resposta simples é editar seu arquivo de hosts locais, por exemplo, /etc/hostsno Linux ou OS X, ou C:\Windows\System32\drivers\etc\hostsem uma caixa típica do Windows.

Se você deseja algo que esteja mais no nível de produção do que uma solução rápida para desenvolvimento, então o que você precisa é de um proxy reverso como nginx ou haproxy, e configurá-lo automaticamente pela disponibilidade de contêineres nginx de back-end.

  • cada contêiner nginx de back-end precisará de um serviço 'sidekick' para anunciar sua disponibilidade para o etcd
  • então corraconfdpara ouvir as alterações do etcd e atualizar a configuração do proxy reverso

Isso permite rotear uma única porta no proxy reverso para qualquer número de serviços nginx de back-end que precisam apenas escutar na rede privada.

eu escreviuma ilustração mais detalhada desta abordagem aqui.

informação relacionada