我有三个docker集装箱configuration..
content/* config.js, newrelic.js 使用单个服务器,我得到了如何将nginx链接到ghost容器,并通过nginx获得服务。
不过,我想开始学习coreos并迁移到一系列的coreos服务器。 我知道为了做到这一点,我需要编写两个容器(ghost,ghost-data)的服务文件,并确保ghost和ghost-data在同一主机上,而nginx不在。
据我所知,coreos中的整个机群/集群是正常运行的。 容器将根据需要从节点移动到节点。 问题是,这些节点中的每一个都有自己的IP到世界各地。 如何让我的DNS了解这些IP,以及哪个IP上有nginx服务器?
我看到它的方式,像这样运行的东西..
1.1.1.1 1.1.1.2公网ip 1.1.1.3 DNS将example.com指向1.1.1.1
当coreos决定将nginx-proxy移动到node3 1.1.1.3时会发生什么?
我怎样才能让DNS遵循这个? 我敢肯定,在服务文件中有一种方法可以强制nginx停留在同一个节点上,但是这完全打败了目的不是吗?
你有三个主要的select:
这将与上面描述的设置类似,但是我会确保您的单元文件保留在MachineID=abc123...主机上。 这不是超级HA,因为你有一个单一的失败点。
如果您位于云提供商,请使用LB并在端口80上设置运行状况检查。只有在80上运行的计算机才会获得stream量。 如果LB没有足够快地检测到你的故障,你将会有一些停机时间(从几秒到几分钟)。
类似于https://github.com/robszumski/varnish_etcd ,但你可以用varnish / nginx / haproxy和confd或者vulcand来完成。 基本上,每台机器上都有一个路由层,dynamic地redirect到后端的位置。