注意
- 不需要修改默认源
- 全程需要以root身份执行
- 目前只能在虚拟机或实体机安装,docker中暂时还有问题
安装
1 2 3 4
| apt-cache search keepalived keepalived - Failover and monitoring daemon for LVS clusters
apt-get install keepalived
|
安装完成,会生成/etc/keepalived/目录,该目录是keepalived的配置文件目录。
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/sh A=$(ps -C nginx --no-header |wc -l) if [ "$A" -eq 0 ] then systemctl start nginx sleep 2 A2=$(ps -C nginx --no-header |wc -l) if [ "$A2" -eq 0 ] then killall keepalived fi fi
|
主配置
- ifconfig 查看网卡名称和ip
- vim /etc/keepalived/keepalived.conf
1
| vi /etc/keepalived/keepalived.conf
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| # 全局配置 global_defs { notification_email { chensz@xxx.com } notification_email_fromchensz@xxx.com smtp_server 192.168.140.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # 严格遵守vrrp协议,下面这些功能将会禁止:1. 0 VIP 2. unicast(单播) peers 3. vrrp 版本2的ipv6功能 vrrp_strict # 小数类型,单位秒,在一个网卡上每组gratuitous arp消息之间的延迟时间,默认为0,一个发送的消息=n组 arp报文 vrrp_garp_interval 0 # 小数类型,单位秒, 在一个网卡上每组na消息之间的延迟时间,默认为0 vrrp_gna_interval 0 }
vrrp_script check_nginx_alive { script "/usr/bin/check_nginx_alive.sh" # 检查时间间隔 interval 2 # 脚本执行失败则优先级减10 weight -10 # 表示两次失败才算失败 fall 2 }
# 定义实例 vrrp_instance VI_1 { state MASTER interface ens32 # 指定VRRP实例ID,范围是0-255.同一个组要一致 virtual_router_id 51 priority 100 # 指定发送VRRP通告的间隔。单位是秒。 advert_int 1 # 指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。密码" 最多8位 authentication { auth_type PASS auth_pass 1111 } # 设备之间使用的虚拟ip地址 virtual_ipaddress { 192.168.140.222 } # 执行脚本 track_script { check_nginx_alive } }
virtual_server 192.168.140.222 80 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP
real_server 192.168.140.210 80 { weight 1 TCP_CHECK{ connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
|
备配置
1
| vim /etc/keepalived/keepalived.conf
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# 全局配置 global_defs { notification_email { chensz@xxx.com } notification_email_from chensz@xxx.com smtp_server 192.168.140.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # 严格遵守vrrp协议,下面这些功能将会禁止:1. 0 VIP 2. unicast(单播) peers 3. vrrp 版本2的ipv6功能 vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 }
vrrp_script check_nginx_alive { script "/usr/bin/check_nginx_alive.sh" interval 3 weight -10 fall 2 } # 定义实例 vrrp_instance VI_1 { state BACKUP interface ens160 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.140.222 } track_script { check_nginx_alive } }
virtual_server 192.168.140.222 80 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP
real_server 192.168.140.213 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
|
1 2
| systemctl enable keepalived systemctl start keepalived
|
注意
新版本
查看网卡,只会存在 主master 可以看到 虚拟vip
1 2
| tail -500f /var/log/syslog | grep Keepalived cat /var/log/syslog | grep Keepalived
|