Production-ready Keepalived container image for VRRP high availability and VIP failover with dynamic configuration and hot reload.
This image requires the ip_vs kernel module to be loaded on the host (modprobe ip_vs).
It must be run with the following Docker options:
docker run --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=NET_BROADCAST --network=host osixia/keepalivedUsing your own Keepalived configuration
This image ships with a Keepalived configuration template that can be customized using environment variables for quick bootstrapping.
You can also provide your own keepalived.conf by mounting it at the path defined by KEEPALIVED_CONF (default: /etc/keepalived/keepalived.conf):
docker run --volume /data/my-keepalived.conf:/etc/keepalived/keepalived.conf osixia/keepalivedPassing command-line arguments to Keepalived
The osixia/keepalived container allows you to pass additional command-line arguments directly to the keepalived binary.
Arguments specified after -- are forwarded to the keepalived process inside the container:
docker run osixia/keepalived -- --dont-release-ipvsDebugging
To debug the container manually, you can start it with an interactive shell.
The --debug option from osixia/baseimage enables debug logging, installs debugging tools, and launches an interactive shell.
If Keepalived keeps crashing, you can add --skip-process to start the container without launching service processes.
docker run -it osixia/keepalived --debug
docker run -it osixia/keepalived --skip-process --debug You can also enable Keepalived debugging options:
docker run osixia/keepalived -- --log-detail --dump-confTo see all available command-line options:
docker run --rm osixia/keepalived --help # osixia/baseimage options
docker run --rm osixia/keepalived -x keepalived -- --help # keepalived command-line options| Variable | Description | Default |
|---|---|---|
KEEPALIVED_CONF |
Path to the Keepalived configuration file | /etc/keepalived/keepalived.conf |
KEEPALIVED_CONF_TEMPLATE |
Path to the configuration template used to generate keepalived.conf |
/container/services/keepalived-conf/assets/confs/keepalived.conf.template |
KEEPALIVED_CONF_RELOAD_SCRIPT |
Script executed when configuration changes are detected | /container/services/keepalived-conf/assets/scripts/reload.sh |
KEEPALIVED_INTERFACE |
Network interface used by VRRP | eth0 |
KEEPALIVED_STATE |
Initial VRRP state (MASTER or BACKUP) |
BACKUP |
KEEPALIVED_ROUTER_ID |
VRRP router ID | 51 |
KEEPALIVED_PRIORITY |
VRRP priority of the node | 150 |
KEEPALIVED_UNICAST_PEERS |
List of peer nodes used for VRRP unicast communication | 192.168.1.10 192.168.1.11 |
KEEPALIVED_VIRTUAL_IPS |
Virtual IP addresses managed by Keepalived | 192.168.1.231 192.168.1.232 |
KEEPALIVED_PASSWORD |
VRRP authentication password | d0cker |
KEEPALIVED_NOTIFY_SCRIPT |
Script executed when Keepalived state changes | /container/services/keepalived/assets/scripts/notify.sh |
See full documentation and complete features list on osixia/keepalived documentation.
This image is based on osixia/baseimage.
If you find this project useful here's how you can help:
- Send a pull request with new features and bug fixes.
- Help new users with issues they may encounter.
- Support the development of this image and star this repo and the image docker hub repository.
This project use dagger as CI/CD tool to build, test and deploy images. See source code and usefull command lines in build directory.
This project is licensed under the terms of the MIT license. See LICENSE.md file for more information.
