I am looking for a "simple" deployment system that can manage a cluster of computers.
I have one Docker image (hosted on DockerHub) that will run with different environment parameters in this cluster. For this image I have a docker_compose file that I can start on a machine directly (this works right now).
What I am looking for is a cluster management system to which I can add physical computers (nodes) and then I can issue commands like:
$ docker-compose up
or
$ docker run --device /dev/sda -e ENV1 -e ENV2 image_id
And ideally the cluster (manager) schedules it on one available node. All the nodes that I will join in the cluster have the necessary resources to run the container, so I am not interested in a cluster management system that can schedule containers depending on their hardware needs. Also, it doesn't necessarily need to have support for Docker, just to be able to issue the commands remotely on the cluster's nodes. Ideally, this would also an API other than command line that I could talk to.
What I've tried / looked at
- Docker swarm mode - seemed like the perfect choice, but I hit a dead-end because I use the "--device" parameter, which is not supported yet (and it might as well never be).
- Docker machine
- this seems exactly what I want, but it's not supported anymore, so I don't think it's a good choice.
- Kubernetes sounds good but seems at first sight like an overkill. Also not sure it can do "--device" so I hesitate in going through learning it and hitting another dead-end.
Any suggestions are welcome!