I have a docker question:
*Context*: At work, we manage a whole lot of kiosks computers in our client locations. These kiosks are running docker containers with our software using docker-compose.
*The problem*: In some situations, it is necessary to reset the system by using docker-compose down
and docker-compose up -d
. But that requires sshing to the computer and doing the commands by hand, and some clients don’t even have ssh enabled. The numbers of kiosks we are managing are increasing each week and this kind of manual work is becoming too much.
One solution is to migrate from docker-compose to kubernetes pods, but it is no clear how to make this transition
you could use something like ansible to manage these and do it in a single command
for sure it's simpler than going the kubernetes way
I think the main issue is how to trigger the remote execution when the customer doesn’t allow remote ssh.
yeah that's a problem
otherwise sounds like something that could be done with a cron job
I was thinking that too, but could be an issue where the customer service team needs to coordinate with users. (“System reboot in 10 minutes, save your work” in the old days)
never heard of ansible before
Other solution is to install a service that listens to the server and execute docker commands
Right. Earlier you said you thought about migrating to kubernetes, is that because of the ability to restart things?
no only to restart, but also to manage updates, get logs, etc
I see. Well, we attempted something similar by running OpenShift (v1.0, the pre-Kubernetes one) on a customer site a couple of startups ago. Our experience was exactly like the famous jwz quote: “Now you have two problems.”
Plus, if it’s really a “kiosk”… do you have the resources available to run all the k8s machinery well?
k8s?
Ansible is a huge tool, the learning curve is steep
k8s = “kubernetes”, like a16z = “Andreessen Horowitz” or i18n = “internationalization”
mind blown
I’m tempted to ask if you can move whatever processing is happening on the kiosks to the backend, and let the kiosks do front-end work only.
j3s = james
@gonewest818 impossible, the kiosks have to be able to work offline and independently from the server. The connection from the server is only to share statistics, change configurations and trigger some events
I see.
@pablore maybe you can have some health check to know if docker needs a restart, and run a cronjob, restarting when needed?
I worked in such a system, managing remote devices (RPi mostly) for kiosks, and we used the http://resin.io platform.