安装部署Keepalived
学习笔记
一、安装
yum install keepalived -y
二、部署
主配置文件为/etc/keepalived/keepalived.conf
[root@localhost ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
##全局定义
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL #id为LVS_DEVEL,不同的keepalived.conf此ID要唯一
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
##全局定义
##高可用配置
vrrp_instance VI_1 { #实例名称VI_1,相同实例的备节点名字要和这个相同
state MASTER #主节点状态为MASTER,备节点的状态为BACKUP
interface eth0 #通信接口为eth0,此参数备节点设置和主节点相同
virtual_router_id 51 #实例的表示(身份证),唯一
priority 100 #优先级为100,备用节点必须低于主节点
advert_int 1 #通知间隔(默认1秒,表示我还活着)
#加密的认证
authentication {
auth_type PASS #PAAS认证类型,此参数备节点设置和主节点相同
auth_pass 1111 #密码是1111,此参数备节点设置和主节点相同
}
#VIP地址
virtual_ipaddress {
#192.168.200.16
#192.168.200.17
#192.168.200.18
10.0.0.12/24 dev eth0 label eth0:1 #虚拟IP,即VIP为10.0.0.12,子网掩码为24位,绑定接口为eth0,别名为eth:1,此参数备节点设置和主节点相同
}
}
##高可用配置
##下面是LVS的配置(没用)
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.2 1358 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
sorry_server 192.168.200.200 1358
real_server 192.168.200.2 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.3 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334c
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.10.10.3 1358 {
delay_loop 3
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.200.4 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.200.5 1358 {
weight 1
HTTP_GET {
url {
path /testurl/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl2/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
url {
path /testurl3/test.jsp
digest 640205b7b0fc66c1ea91c463fac6334d
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@localhost ~]#
主节点配置
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eno16777728
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.30/24 dev eno16777728 label eno16777
728:1
}
}
备节点配置
global_defs {
router_id LVS_BACKUP
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777728
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.100.30/24 dev eno16777728 label eno16777
728:1
}
}
启动keepalived服务
systemctl start keepalived
查看keepalived是否成功
[root@node01 ~]# ps -ef |grep keep |grep -v grep
root 9866 1 0 18:17 ? 00:00:00 /usr/sbin/keepalived -D
root 9867 9866 0 18:17 ? 00:00:00 /usr/sbin/keepalived -D
root 9868 9866 0 18:17 ? 00:00:00 /usr/sbin/keepalived -D
[root@node02 ~]# ps -ef |grep keep |grep -v grep
root 20267 1 0 18:35 ? 00:00:00 /usr/sbin/keepalived -D
root 20268 20267 0 18:35 ? 00:00:00 /usr/sbin/keepalived -D
root 20269 20267 0 18:35 ? 00:00:00 /usr/sbin/keepalived -D
出错看日志
tail -f /var/log/messages
验证
关闭主节点
[root@node01 ~]# systemctl stop keepalived
bash 查看备节点是否接管
[root@node02 ~]# ip add |grep 30
inet 192.168.100.30/24 scope global secondary eno16777736:1
测试成功
切换到备用节点中间会掉一个包
注意:网卡名为每个节点的网卡名!!!