将 Docker 容器部署到 swarm 集群中的多个节点

Posted

技术标签:

【中文标题】将 Docker 容器部署到 swarm 集群中的多个节点【英文标题】:Docker container deployment to mulitple nodes in a swarm cluster 【发布时间】:2020-08-21 08:06:38 【问题描述】:

我有一个由 6 个工作节点和 3 个主节点组成的集群,因此总共有 9 个节点。 我的 swarm 集群中有不同大小的机器。 所以有一个要求,我需要根据节点的大小在特定的工作节点上部署某些服务(容器)。 我知道我们可以在 docker-compose 文件中设置放置约束,并且可以指定主机名。

由于我将运行该服务的 2 个副本,因此 swarm 将在我设置了约束的同一个 worker 上创建副本。但我不希望副本在同一个工作节点上运行。

我们可以在设置放置约束时选择指定多个主机名吗?请指导。

【问题讨论】:

【参考方案1】:

你可以通过标签来组合一些节点。

    docker node update --label-add ssd=fat_machine hostname1
    docker node update --label-add ssd=fat_machine hostname2

并在 docker-compose 中定义标签

    constraints: [node.labels.ssd == fat_machine]

【讨论】:

以上是关于将 Docker 容器部署到 swarm 集群中的多个节点的主要内容,如果未能解决你的问题,请参考以下文章

云计算之路-阿里云上-容器难容:自建docker swarm集群遭遇无法解决的问题

通过docker-machine和etcd部署docker swarm集群

部署Docker swarm集群

docker swarm 集群服务编排部署指南(docker stack)

Docker Swarm集群部署应用

Docker swarm部署