Dynamically spinning up Jenkins slaves on Docker clusters
Introduction: Being able to dynamically spin up slave containers is great. But if we want to support significant build volumes we need more than a few Docker hosts. Defining a separate Docker cloud instance for each new host is definitely not something we want to do – especially as we’d need to redefine the slave templates for each new host. A much nicer solution is combining our Docker hosts into a cluster managed by a so-called container orchestrator (or scheduler) and then define that whole cluster as one cloud instance in Jenkins.This way we can easily expand the cluster by adding new nodes into it without needing to update anything in Jenkins configuration. There are 4 leading container orchestration platforms today and they are: Kubernetes (open-sourced and maintained by Google) Docker Swarm (from Docker Inc. – the company behind Docker) Marathon (a part of the Mesos project) Nomad (from Hashicorp)…