From f0fffd68023aab6eca37bfec5337ccd435b7b7fe Mon Sep 17 00:00:00 2001 From: sangyun Date: Wed, 17 Jan 2024 15:49:25 +0900 Subject: [PATCH] initial create --- Dockerfile | 19 +++++++++++++++++++ README.md | 0 docker-compose.yml | 12 ++++++++++++ keepalived.conf | 41 +++++++++++++++++++++++++++++++++++++++++ keepalived.sh | 1 + 5 files changed, 73 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 keepalived.conf create mode 100644 keepalived.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..01a07ca --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:latest + +# tested alpine : 3.19 +# keepalived : https://pkgs.alpinelinux.org/package/edge/community/armhf/keepalived + +RUN apk update \ + && apk upgrade \ + && apk add --no-cache \ + keepalived \ + curl \ + ca-certificates \ + && update-ca-certificates \ + && rm -rf /var/cache/apk/* \ + && keepalived --version + +COPY keepalived.sh /etc/keepalived/keepalived.sh +RUN chmod +x /etc/keepalived/keepalived.sh; chown root:root /etc/keepalived/keepalived.sh + +#CMD ["/usr/sbin/keepalived", "--dont-fork", "--dump-conf", "--vrrp", "--log-detail", "--log-console"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..031428a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3.5' + +services: + keepalived: + build: . + volumes: + - ./keepalived.conf:/etc/keepalived/keepalived.conf + network_mode: host + cap_add: + - NET_ADMIN + - NET_BROADCAST + - NET_RAW \ No newline at end of file diff --git a/keepalived.conf b/keepalived.conf new file mode 100644 index 0000000..0e293fc --- /dev/null +++ b/keepalived.conf @@ -0,0 +1,41 @@ +global_defs { + #Hostname will be used by default + router_id master_node + #vrrp_version 2 + #vrrp_garp_master_delay 1 + #vrrp_garp_master_refresh 60 + #Uncomment the next line if you'd like to use unique multicast groups + #vrrp_mcast_group4 224.0.0.{{VRID}} + #script_user root + #enable_script_security +} + +vrrp_script chk_haproxy { + script "/etc/keepalived/keepalived.sh" + timeout 1 + interval 1 # check every 1 second + fall 2 # require 2 failures for KO + rise 2 # require 2 successes for OK +} + +vrrp_instance VI_1 { + state MASTER + interface eth0 + virtual_router_id 51 + priority 100 + advert_int 1 + nopreempt #Prevent fail-back + + track_script { + chk_haproxy + } + + authentication { + auth_type PASS + auth_pass 1111 + } + + virtual_ipaddress { + 192.168.0.247 + } +} \ No newline at end of file diff --git a/keepalived.sh b/keepalived.sh new file mode 100644 index 0000000..cc1f786 --- /dev/null +++ b/keepalived.sh @@ -0,0 +1 @@ +#!/bin/bash \ No newline at end of file