ContainerPilot
Modified: 26 Jan 2023 22:12 UTC
ContainerPilot is an init system designed to live inside the container. It acts as a process supervisor, reaps zombies, run health checks, registers the app in the service catalog, watches the service catalog for changes, and runs your user-specified code at events in the lifecycle of the container to make it all work right. ContainerPilot uses Consul to coordinate global state among the application containers.
- What is a job?
- What is an event?
- What is a watch?
- How do events trigger jobs?
- How can jobs be ordered?
Design: the Why of ContainerPilot
- Why active service discovery?
- Why isn't there a "post-start" or "started" event?
- Why Consul and not etcd or Zookeeper?
- Why are jobs not the same as services?
- Why don't watches or metrics have an exec field?
- Why use something other than ContainerPilot?
Configuration
- Installation
- Configuration file
- Consul
- Jobs
- Watches
- Telemetry
- Control plane
- Logging
- Example configurations
Where it's used
- Applications on autopilot: a guide to how to build self-operating applications with ContainerPilot
- MySQL (Percona Server) with auto scaling and fail-over
- ELK stack
- Node.js + Nginx + Couchbase
- CloudFlare DNS and CDN with dynamic origins
- Consul, running as an HA raft
- Couchbase
- Mesos on Triton
- Nginx with dynamic upstreams