Kolla High Availability Integration
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
- Started by
- Completed by
- Steven Dake
Related branches
Related bugs
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.