Kolla High Availability Integration

Registered by David Vossel

Traditionally High Availability cluster managers (like Pacemaker) have had direct access to all the processes running in the cluster through the use of things like init scripts, systemd services, and OCF resource-agents. With containers, these methods are no longer directly available to the cluster manager.

Fortunately Pacemaker already has the ability to both manage containers and manage the individual processes within each container. In order to integrate with Pacemaker, we must define a generic pattern for how each OpenStack container will provide health monitoring of the services within the container.

To put it simply, each container needs to provide the ability to perform status monitoring of the service[s] that live within the container in a similar way to how 'systemctl status <service>' works. This feature is to define and implement how the containers expose status monitoring so that Kolla can naturally function within a High Availability environment.

Blueprint information

Status:
Complete
Approver:
Steven Dake
Priority:
Not
Drafter:
David Vossel
Direction:
Needs approval
Assignee:
None
Definition:
Superseded
Series goal:
None
Implementation:
Not started
Milestone target:
None
Completed by
Steven Dake

Related branches

Sprints

Whiteboard

I believe this could be achieved by overriding the service tool used by pacemaker. The service tool could run docker exec on our healthchecking scripts within the containers. Ideally, however, we would like pacemaker to exist inside a container as well. To make that happen, there needs to be some IPC with the host system to run the dokcer exec. I am not sure you can do nested docker exec.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.