keepalivedの構築

sudo apt install keepalived

Config

以下のサイトを見ながら設定を作成した.

第4章 Keepalived を用いたロードバランサーの初期設定 Red Hat Enterprise Linux 7 | Red Hat Customer Portal

haproxyをkeepalivedで冗長化して高可用性ロードバランサを構築する - ビビリフクロウの足跡

keepalived を使ってみたメモ - ngyukiの日記

17.11 Keepalivedの通知スクリプトと追跡スクリプトについて

Linux Virtual ServerとKeepalivedで作る冗長化ロードバランサ 4ページ | OSDN Magazine

VIPを複数割り当ててリソースを活用するために以下を参考にした.

keepalivedによるサーバ冗長化について | GMOアドパートナーズグループ TECH BLOG byGMO

設定例

! Configuration File for keepalived
vrrp_script chk_haproxy {
    script "systemctl is-active haproxy"
}

vrrp_instance VI_1 {
    state BACKUP
    priority 50
    interface ens160
    garp_master_delay 10
    virtual_router_id 31
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass FUGAFUGA
    }
    virtual_ipaddress {
        192.168.100.10
    }
}

vrrp_instance VI_2 {
    state MASTER
    priority 100
    interface ens160
    virtual_router_id 32
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass HOGEHOGE
    }
    virtual_ipaddress {
        192.168.100.11
    }
    track_script {
        chk_haproxy
    }
}
! Configuration File for keepalived
vrrp_script chk_haproxy {
    script "systemctl is-active haproxy"
}

vrrp_instance VI_1 {
    state MASTER
    priority 100
    interface ens160
    garp_master_delay 10
    virtual_router_id 31
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass FUGAFUGA
    }
    virtual_ipaddress {
        192.168.100.10
    }
}

vrrp_instance VI_2 {
    state BACKUP
    priority 50
    interface ens160
    virtual_router_id 32
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass HOGEHOGE
    }
    virtual_ipaddress {
        192.168.100.11
    }
    track_script {
        chk_haproxy
    }
}

Experiment

どちらかのノードで以下を実行して vip が変わるか確認する.

sudo systemctl stop keepalived