使用 docker swarm 自动配置新主机

Posted

技术标签:

【中文标题】使用 docker swarm 自动配置新主机【英文标题】:Auto-provision new hosts with docker swarm 【发布时间】:2016-11-28 23:06:42 【问题描述】:

当 docker swarm 检测到没有足够的资源来调度所有服务时,如何自动配置新机器?

我使用了rancher和docker swarm调度器的设置,如果资源不够,服务创建失败:

exit status 1: Creating stresstest2_workerb1_1 Creating stresstest2_workerb2_1 no resources available to schedule container

我可以轮询此状态并在需要时调用 docker machine,但 Rancher 不会尝试重新安排丢失的服务。我想知道是否有更集成的解决方案,也许是 docker swarm 中的一个钩子,可以用来动态调用 docker-machine 来创建或删除机器。

我目前正在决定 Rancher 与 Docker 1.11 + Docker Swarm 还是 Docker 1.12 在 Swarm 模式下,所以任何一个解决方案都可以。

【问题讨论】:

【参考方案1】:

您使用的是 1.12 中的新 Docker Swarm 模式吗?目前 Docker Swarm 中没有针对此的钩子。但是,使用 Swarm 模式,您可以使用 Docker Remote API 来收集触发它的事件而不是轮询。

【讨论】:

感谢回复,但是好像没有failed to deploy container due to lack of resources的事件,还是我遗漏了什么? 我试了一下,没有资源不足导致容器无法调度时触发的事件。 最好在问题跟踪器中发布此内容:github.com/docker/docker/issues

以上是关于使用 docker swarm 自动配置新主机的主要内容,如果未能解决你的问题,请参考以下文章

Azure 自动缩放和 Docker Swarm

docker swarm网络问题

swarm 集群配置

docker-swarm集群创建

创建swarm集群并自动编排

自动缩放 Docker Swarm 服务