【问题标题】:How to Distribute Jenkins Slave Containers Within Docker Swarm如何在 Docker Swarm 中分发 Jenkins 从属容器
【发布时间】:2017-03-29 01:50:29
【问题描述】:

我想让我的 Jenkins master(非容器化)在容器中创建从属。因此,我已将 docker 插件安装到 jenkins 中,创建了一个 docker 服务器,进行了配置,并且 jenkins 在创建作业后确实启动了一个从属容器。

但是,在我创建了另一个 docker 服务器并从中创建了一个 swarm 并尝试再次运行 jenkins 作业后,它继续只在原始服务器上部署容器(现在也是一个管理器)。我希望 swarm 能够平衡负载并将新创建的容器均匀地分布在 swarm 中。我错过了什么?

我是否必须使用服务?

【问题讨论】:

    标签: jenkins docker docker-swarm


    【解决方案1】:

    即使部署在一个 swarm 中,Docker 镜像本身也不是负载均衡的。您正在寻找的确实是服务定义。只是要小心,因为端口分配。如果您正在部署您的 jenkins 从站以侦听端口 80 等,所有 swarm 主机 将侦听端口 80 并网状路由到容器。

    基本上意味着您无法将其他任何东西部署到这些主机上的端口 80。但是,一旦完成,对主机的任何请求都将负载平衡到容器。

    另一个好处是您可以通过服务更新动态更改副本数量

    docker service update JenkinsService --replicas 42
    

    虽然 42 可能是极端的,但您显然可以更改它 :)

    【讨论】:

      【解决方案2】:

      到目前为止,我在 swarm 中找不到任何可以帮助我操纵跨 swarm 节点的容器分布的东西。

      最终为此目的使用了更灵活的 kubernetes。我认为马拉松也能做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-07
        相关资源
        最近更新 更多