主节点安装
环境
[root@test2 ~]# keepalived -v
Keepalived v1.3.5 (03/19,2017)
HostName | IP | DES |
---|---|---|
test1 | 192.168.180.46 | master |
test2 | 192.168.180.47 | node-1 |
test3 | 192.168.180.48 | node-2 |
test4 | 192.168.181.18 | node-3 |
一、安装部署
[root@test2 ~]# yum install -y keepalived
二、配置文件
查看当前要指定虚IP的网卡
[root@test2 ~]# ip add | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.180.46/24 brd 192.168.180.255 scope global noprefixroute ens160
[root@test2 ~]#
[root@test2 ~]# vim /etc/keepalived/keepalived.conf
# 1 全局块
global_defs {
# 接收邮件的邮箱列表
notification_email {
eric.mao@sinoeyes.com
}
notification_email_from eric@qq.com # 发送邮件的人
smtp_server smtp.exmail.qq.com # smtp服务器地址
smtp_connect_timeout 30 # smtp超时时间
router_id eric_keepalived_node_1 # 机器标识
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
# 2 VRRP协议 实例块
vrrp_instance ERIC_VI_1 { # 定义一个vrrp的实例块,实例块的名称可以任意起,最好是字符串,这里我们定义的是 ERIC_VI_1
state BACKUP # 定义当前安装keepalived软件的服务器是 主节点(MASTER) 还是 备份节点(BACKUP)。
virtual_router_id 56 # 虚拟路由ID,主备必须要一致,负责相同虚拟IP的keepalived集群,范围是0-255
priority 100 # 优先级,谁的优先级高,谁更容易成为主节点
nopreempt # 设置 nopreempt 防止抢占资源
advert_int 1 # 主备服务器之间的通信间隔,单位是秒。
# 服务器之间的认证方式
authentication {
auth_type PASS # 指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。
auth_pass 1111 # 指定认证所使用的密码。最多8位。
}
interface ens160 # 指定虚拟IP定义在那个网卡上面(本机指定为 ens160 网卡)
# 定义虚拟IP块。客户通过该ip访问服务器
virtual_ipaddress {
192.168.180.168/24 # 与指定的网卡是同一网段虚拟IP(使用ip add进行查看ens160 网卡的网段)
}
}
三、启动
[root@test2 ~]# systemctl start keepalived.service && systemctl enable keepalived.service && systemctl status keepalived.service
四、查看是否创建成功
备节点与主节点不同,需要停掉主节点,备节点才可以查到虚拟IP;
由此可见,KeepAlived 高可用是通过动态切换生成虚拟IP地址来达到的高可用!
[root@test2 ~]# ip add | grep ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 192.168.180.46/24 brd 192.168.180.255 scope global noprefixroute ens160
# 发现多了一个虚拟IP就是成功了
inet 192.168.180.168/24 scope global secondary ens160
[root@test2 ~]#