I am looking to scale a docker application used to perform periodic performance tests on equipment at several remote locations. This application requires running the same performance tests- using the same underlying images- on each of the remote worker nodes with a configuration specific to each worker node.
Consider this example, where I have three servers...
...and I want to run my containers
foobar-performance on all three of the worker nodes. How would I do the following:
fizbuz-testeronce every hour on
worker.chicagobut every six hours on
- Set an environment variable in
The underlying Docker image that runs the container is the same, but the runtime settings are different (and will be adjusted periodically). Currently my process is to consult my documentation and run the appropriate
docker run command on each worker. If I want to change one of the configuration options for a container it again involves connecting to the worker. The scalibility issues should be apparent.
How can I manage this application as it scales from 3 to 5, to 10, to 20 worker nodes?
The Docker orchestration tools I've found seem to be based around "do the same thing in the same way in lots of places", whereas for my application I need to "do the same thing in different ways in lots of places"
The go-to for remote container orchestration- Docker Swarm- does not serve my use case. Everything I've read about Swarm indicates that it abstracts the management of the actual Docker worker hosts away, which is exactly not what I need.
Is there a tool that lets me remotely manage multiple docker worker nodes from a central server, while still giving me control over each worker individually and not just as a part of a resource pool?
I'm hoping that two years on from this question there might be an answer available