自动缩放 Docker Swarm 服务

Posted

技术标签:

【中文标题】自动缩放 Docker Swarm 服务【英文标题】:Autoscale Docker Swarm Services 【发布时间】:2017-08-01 20:59:30 【问题描述】:

我们使用 Ansible 和 AWS Autoscaling Groups 来扩展我们的 docker swarm 集群。现在这是可行的,因为我们以全局模式运行服务,因此我们会自动为每个 docker 节点获取每种容器类型之一。然而,这不是很有效,因为我们最终会得到比我们需要的更多的服务容器。

是否有人在做类似的事情,但让 docker swarm 根据其资源利用率横向扩展特定服务?看起来可以通过利用 docker stats 来确定哪些容器需要扩展,但如果已经有一个好的解决方案,就不想重新发明***。

编辑:不是在寻找如何扩展 swarm 集群本身,而是在其上运行的单个服务。

【问题讨论】:

How to configure autoscaling on docker swarm?的可能重复 @BMitch 我不这么认为,这个问题是问如何扩展集群集群,我试图弄清楚如何在扩展集群后弄清楚如何扩展单个集群服务 【参考方案1】:

看看 Kubernetes。

Kubernetes(通常称为“K8s”)是一个开源容器 最初由 Google 设计的集群管理器。它旨在提供一个 “用于自动化部署、扩展和操作的平台 跨主机集群的应用程序容器”。它通常可以工作 使用 Docker 容器工具并在广泛的集群之间进行协调 运行 Docker 的主机数。

现在让我们进入正题:

Kubernetes 水平自动缩放:

借助 Horizo​​ntal Pod Autoscaling,Kubernetes 会根据观察到的 CPU 利用率(或者,在 alpha 支持下,在其他一些应用程序提供的情况下)自动扩展复制控制器、部署或副本集中的 pod 数量指标)。

More info

【讨论】:

以上是关于自动缩放 Docker Swarm 服务的主要内容,如果未能解决你的问题,请参考以下文章

将 etcd 集群自动配置为 Docker swarm 服务

使用 docker swarm 自动配置新主机

Docker集群实验环境布署--swarm3 注册服务监控与自动发现组件--consul

如何自动缩放 Docker 容器主机?

在 docker swarm 中自动发现 Prometheus 指标端点

【swarm】Docker swarm 的负载均衡