- # 查看安装版本
- rpm -qi keepalived
-
- # yum卸载
- yum remove keepalived
-
- # 找出残留的配置文件
- find / -name keepalived
- /etc/selinux/targeted/tmp/modules/100/keepalived
- /etc/selinux/targeted/active/modules/100/keepalived
-
- # 删除配置文件
- rm -rf /etc/selinux/targeted/tmp/modules/100/keepalived
- rm -rf /etc/selinux/targeted/active/modules/100/keepalived
- yum -y install keepalived
-
- Last metadata expiration check: 0:41:09 ago on Wed 09 Nov 2022 02:13:14 PM CST.
- Dependencies resolved.
- =================================================================================================================================================================================================================================================
- Package Architecture Version Repository Size
- =================================================================================================================================================================================================================================================
- Installing:
- keepalived x86_64 2.1.5-8.el8 ol8_appstream 536 k
- Installing dependencies:
- mariadb-connector-c x86_64 3.1.11-2.el8_3 ol8_appstream 200 k
- mariadb-connector-c-config noarch 3.1.11-2.el8_3 ol8_appstream 15 k
- net-snmp-agent-libs x86_64 1:5.8-25.el8 ol8_appstream 748 k
- net-snmp-libs x86_64 1:5.8-25.el8 ol8_baseos_latest 827 k
-
- Transaction Summary
- =================================================================================================================================================================================================================================================
- Install 5 Packages
-
- Total download size: 2.3 M
- Installed size: 7.3 M
- Downloading Packages:
- (1/5): mariadb-connector-c-3.1.11-2.el8_3.x86_64.rpm 16 kB/s | 200 kB 00:12
- (2/5): mariadb-connector-c-config-3.1.11-2.el8_3.noarch.rpm 17 kB/s | 15 kB 00:00
- (3/5): net-snmp-agent-libs-5.8-25.el8.x86_64.rpm 91 kB/s | 748 kB 00:08
- (4/5): keepalived-2.1.5-8.el8.x86_64.rpm 20 kB/s | 536 kB 00:26
- (5/5): net-snmp-libs-5.8-25.el8.x86_64.rpm 30 kB/s | 827 kB 00:27
- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- Total 84 kB/s | 2.3 MB 00:27
- Running transaction check
- Transaction check succeeded.
- Running transaction test
- Transaction test succeeded.
- Running transaction
- Preparing : 1/1
- Installing : net-snmp-libs-1:5.8-25.el8.x86_64 1/5
- Installing : mariadb-connector-c-config-3.1.11-2.el8_3.noarch 2/5
- Installing : mariadb-connector-c-3.1.11-2.el8_3.x86_64 3/5
- Installing : net-snmp-agent-libs-1:5.8-25.el8.x86_64 4/5
- Installing : keepalived-2.1.5-8.el8.x86_64 5/5
- Running scriptlet: keepalived-2.1.5-8.el8.x86_64 5/5
- Verifying : net-snmp-libs-1:5.8-25.el8.x86_64 1/5
- Verifying : keepalived-2.1.5-8.el8.x86_64 2/5
- Verifying : mariadb-connector-c-3.1.11-2.el8_3.x86_64 3/5
- Verifying : mariadb-connector-c-config-3.1.11-2.el8_3.noarch 4/5
- Verifying : net-snmp-agent-libs-1:5.8-25.el8.x86_64 5/5
-
- Installed:
- keepalived-2.1.5-8.el8.x86_64 mariadb-connector-c-3.1.11-2.el8_3.x86_64 mariadb-connector-c-config-3.1.11-2.el8_3.noarch net-snmp-agent-libs-1:5.8-25.el8.x86_64 net-snmp-libs-1:5.8-25.el8.x86_64
-
- Complete!
Keepalived基础命令:
-
- # 启动 keepalived
- systemctl start keepalived
-
- # 加入开机启动 keepalived
- systemctl enable keepalived
-
- # 重新启动 keepalived
- systemctl restart keepalived
-
- # 查看 keepalived 状态
- systemctl status keepalived
- cat check_haproxy.sh
-
- #!/usr/bin/env bash
- if [ $(pgrep haproxy|wc -l) -eq 0 ];then
- sudo systemctl start haproxy
- sleep 3
- if [ $(pgrep haproxy|wc -l) -eq 0 ];then
- sudo systemctl stop keepalived
- fi
- fi
- global_defs {
- router_id haproxy
- script_user root
- enable_script_security
- }
- vrrp_script chk_haproxy {
- script "/etc/keepalived/check_haproxy.sh"
- interval 2
- weight -20
- }
- vrrp_instance VI_1 {
- state MASTER
- interface ens32
- virtual_router_id 55
- mcast_src_ip 10.95.34.38
- nopreempt
- priority 89
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 10.95.34.65
- }
- track_script {
- chk_haproxy
- }
- }
- global_defs {
- router_id haproxy
- script_user root
- enable_script_security
- }
- vrrp_script chk_haproxy {
- script "/etc/keepalived/check_haproxy.sh"
- interval 2
- weight -20
- }
- vrrp_instance VI_1 {
- state BACKUP
- interface ens32
- virtual_router_id 55
- nopreempt
- mcast_src_ip 10.95.34.37
- priority 100
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 10.95.34.65
- }
- track_script {
- chk_haproxy
- }
- }
- ip addr
- 1: lo:
mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: ens32:
mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether 00:0c:29:be:d4:61 brd ff:ff:ff:ff:ff:ff
- inet 10.95.34.37/24 brd 10.95.34.255 scope global noprefixroute ens32
- valid_lft forever preferred_lft forever
- inet 10.95.34.65/32 scope global ens32
- valid_lft forever preferred_lft forever
可以看到,多出来一条虚拟ip的记录。当node1的节点宕机或者keepalived挂了的时候,就会自动切换到节点2上面,可以在节点2看到这一条记录信息。
1、keepalived执行后日志狂刷,2.脚本并没有执行(down.sh),具体情况就是haproxy挂掉后,keeplived并没有自杀,导致vip漂移失败,但是手动关闭keeplived后会实现漂移,原因就在于down脚本没有得到执行。
很纠结,经过排查,原因是ip_vs模块系统默认没有自动加载,执行命令:
- 查看
- lsmod | grep ip_vs
- (如果没有任何输出则表示ip_vs模块并没有被内核加载)
-
- 手动加载
- modprobe ip_vs
-
- modprobe ip_vs_wrr