Steven Dake (stdake)
2015-02-07 20:09:45 UTC
Hi,
I am working on Containerizing OpenStack in the Kolla project (http://launchpad.net/kolla). One of the key things we want to do over the next few months is add H/A support to our container tech. David Vossel had suggested using systemctl to monitor the containers themselves by running healthchecking scripts within the containers. That idea is sound.
There is another technology called super-privileged containers. Essentially it allows more host access for the container, allowing the treatment of Pacemaker as a container rather than a RPM or DEB file. Id like corosync to run in a separate container. These containers will communicate using their normal mechanisms in a super-privileged mode. We will implement this in Kolla.
Where I am stuck is how does Pacemaker within a container control other containers in the host os. One way I have considered is using the docker pid=host flag, allowing pacemaker to communicate directly with the host systemctl process. Where I am stuck is our containers dont run via systemctl, but instead via shell scripts that are executed by third party deployment software.
An example:
Lets say a rabbitmq container wants to run:
The user would run
kolla-mgr deploy messaging
This would run a small bit of code to launch the docker container set for messaging.
Could pacemaker run something like
Kolla-mgr status messaging
To control the lifecycle of the processes?
Or would we be better off with some systemd integration with kolla-mgr?
Thoughts welcome
Regards,
-steve
I am working on Containerizing OpenStack in the Kolla project (http://launchpad.net/kolla). One of the key things we want to do over the next few months is add H/A support to our container tech. David Vossel had suggested using systemctl to monitor the containers themselves by running healthchecking scripts within the containers. That idea is sound.
There is another technology called super-privileged containers. Essentially it allows more host access for the container, allowing the treatment of Pacemaker as a container rather than a RPM or DEB file. Id like corosync to run in a separate container. These containers will communicate using their normal mechanisms in a super-privileged mode. We will implement this in Kolla.
Where I am stuck is how does Pacemaker within a container control other containers in the host os. One way I have considered is using the docker pid=host flag, allowing pacemaker to communicate directly with the host systemctl process. Where I am stuck is our containers dont run via systemctl, but instead via shell scripts that are executed by third party deployment software.
An example:
Lets say a rabbitmq container wants to run:
The user would run
kolla-mgr deploy messaging
This would run a small bit of code to launch the docker container set for messaging.
Could pacemaker run something like
Kolla-mgr status messaging
To control the lifecycle of the processes?
Or would we be better off with some systemd integration with kolla-mgr?
Thoughts welcome
Regards,
-steve