用Vagrant / CoreOS / Docker创build一个本地集群

我正在尝试创build一个testing目的的本地环境,组成如下:

  • Vagrant CoreOS集群(3个节点)
  • 在一个节点上启动一个启动了Nginx镜像的Docker容器

我已经成功安装了Vagrant和CoreOS。 Etcd已经开始运行了,我和Fleet玩了很多。 我也推出了一个Nginx容器扔舰队服务。 我无法弄清楚的是:

  • 如何路由特定容器上的stream量? 我希望将本地浏览器指向本地地址(例如example.dev),集群将使用正确的Nginx容器(放置在集群某处)进行回应。
  • 代理是一个合适的解决scheme吗? 如果没有 – 是否有为此目的而创造的东西?

预先感谢,随时提出更多的细节,我可能已经忘记了!

简单的答案就是编辑本地主机文件,例如Linux或OS X上的/etc/hosts ,或者典型的Windows机器上的C:\Windows\System32\drivers\etc\hosts

如果你想要的是比开发更快的生产级别的产品,那么你需要的是像nginx或haproxy这样的反向代理,并且通过后端nginx容器的可用性自动configuration它。

  • 每个后端nginx容器将需要一个“sidekick”服务来宣布其对etcd的可用性
  • 然后运行confd来侦听etcd更改并更新反向代理的configuration

这允许您将反向代理中的单个端口路由到任何数量的只需要在专用networking上侦听的后端nginx服务。

我在这里写了一个更详细的例子 。