2

We are using Ansible along with AWS Autoscaling Groups to scale our docker swarm cluster. Right now this is working because we run the services in global mode so we automatically get one of each container type per docker node. However this is not very efficient because we end up with more containers of some services than we need.

Is anyone doing something similar but having docker swarm scale out specific services based on their resource utilization? It looks like it would be possible by leveraging docker stats to figure out which containers need to scale but don't want to re-invent the wheel if there's already a good solution for this.

EDIT: not looking for how to scale the swarm cluster itself but individual services running on it.

tweeks200
  • 1,837
  • 5
  • 21
  • 33
  • 1
    Possible duplicate of [How to configure autoscaling on docker swarm?](http://stackoverflow.com/questions/41668621/how-to-configure-autoscaling-on-docker-swarm) – BMitch Mar 11 '17 at 18:01
  • @BMitch I don't think so, that question is asking how to scale the swarm cluster where I'm trying to figure out how to figure out how to scale individual swarm services after scaling the cluster – tweeks200 Mar 11 '17 at 18:12

1 Answers1

0

Take a look at kubernetes.

Kubernetes (commonly referred to as "K8s") is an open source container cluster manager originally designed by Google. It aims to provide a "platform for automating deployment, scaling, and operations of application containers across clusters of hosts". It usually works with the Docker container tool and coordinates between a wide cluster of hosts running Docker.

Now lets get to the point:

Kubernetes Horizontal Autoscaling:

With Horizontal Pod Autoscaling, Kubernetes automatically scales the number of pods in a replication controller, deployment or replica set based on observed CPU utilization (or, with alpha support, on some other, application-provided metrics).

enter image description here

More info

Farhad Farahi
  • 35,528
  • 7
  • 73
  • 70