【问题标题】:CoreOS Fleet, link redundant Docker containerCoreOS Fleet,链接冗余 Docker 容器
【发布时间】:2015-08-10 14:58:41
【问题描述】:

我有一个分成 3 个 docker 容器的小型服务。一个后端,一个前端和一个小的日志记录部分。我现在想使用 coreOS 和fleet 启动它们。

我想尝试启动 3 个冗余的后端容器,这样前端可以在其中一个失败时在它们之间切换。

我如何链接它们?如果我只使用一个,这很容易,我只是给它一个名字,例如'返回'并像这样链接它

docker run  --name front --link back:back --link graphite:graphite -p 8080:8080 blurio/hystrixfront

是否可以链接多个?

【问题讨论】:

    标签: docker coreos fleetctl


    【解决方案1】:

    您使用的方法在某种程度上取决于您正在运行的后端服务的类型。如果后端服务是 http,那么有一些不错的代理/负载均衡器可供选择。

    这些背后的一般想法是,您的前端服务只需要被引入 nginx 或 haproxy 提供的单个入口点。这个或任何云服务的棘手部分是您需要能够引入后端服务或删除它们,并使它们可用于代理服务。 nginx 和 haproxy 有一些很好的文章可以做到这一点。这是一个:

    haproxy tutorial

    这里真正的问题是它不是自动的。可能有一些技术可以自动为这些代理服务器引入/删除后端。

    Kubernetes(可以在 coreos 之上运行)有一个名为“服务”的概念。使用这种部署方法,您可以创建一个“服务”和另一个称为“复制控制器”的东西,它为您描述的服务提供“后端”docker 进程。然后可以指示复制控制器增加/减少后端进程的数量。您的前端访问“服务”。我最近一直在使用它,效果很好。

    我意识到这并不是一个剪切和粘贴的答案。我认为您提出的问题确实是云部署的核心。

    【讨论】:

    • 因为您正在使用 coreOS - 您可以使用 etcd 进行服务发现并使用 confd 来更新您的 haproxy 设置。
    【解决方案2】:

    正如 Michael 所说,您可以通过添加发现服务并将其绑定到后端容器来自动完成此操作。发现服务将在 etcd 键值存储中添加 IP 地址(通常您希望将其绑定为私有网络的 IP 地址以避免不必要的带宽使用)和端口,并且可以从负载均衡器容器中读取自动更新负载均衡器以添加可用节点。

    Digital Ocean 有一个很好的教程: https://www.digitalocean.com/community/tutorials/how-to-use-confd-and-etcd-to-dynamically-reconfigure-services-in-coreos

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 2018-02-11
      • 2012-04-16
      • 2013-11-30
      • 1970-01-01
      相关资源
      最近更新 更多