准备4台主机。 HA1:192.168.126.213 HA2:192.168.126.214 RS1:192.168.126.215 RS2:192.168.126.216 VIP:192.168.126.217
一、准备负载均衡机(RS1和RS2)
1)准备工作: 1.确保设置好IP地址,设置好hostname和修改/etc/sysconfig/network内hostname一致。同步时间:#ntpdate ntp.api.bz 2.RS1和RS2先做好互信。 RS1: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #cd ~/.ssh/ #ssh-copy-id -i id_rsa.pub root@NODE2IP RS2: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #cd ~/.ssh/ #ssh-copy-id -i id_rsa.pub root@NODE1IP 测试一下:ssh RS1IP 'ifconfig' 2)安装httpd 3)设置VIP和反应状态(此处可以用脚本实现,会更便于管理) 1.设置VIP ip addr add 192.168.126.217/32 dev eth0 2.反应状态 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 3.测试一下,RS1可以ping通VIP,PS2可以ping通VIP。
二、准备高可用机(HA1和HA2)
1)准备工作: 1.确保设置好IP地址,设置好hostname和修改/etc/sysconfig/network内hostname一致。同步时间:#ntpdate ntp.api.bz 2.HA1和HA2先做好互信。 HA1: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #cd ~/.ssh/ #ssh-copy-id -i id_rsa.pub root@NODE2IP HA2: #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' #cd ~/.ssh/ #ssh-copy-id -i id_rsa.pub root@NODE1IP 测试一下:ssh HA1IP 'ifconfig' 2)安装httpd 在RS1和RS2全部挂掉的时候显示错误信息用的。 3)安装ipvsadm,便于以后检查负载均衡配置。 4)安装keepalived程序。
https://opsx.alibaba.com/mirror
搜索下载对应版本的keepalived的rpm包 HA1: 5)编辑配置文件 cd /etc/keepalived/ vim keepalived.conf ! Configuration File for keepalived
global_defs { #定义全局信息
notification_email {
------------------------------------------------------------------
linuxedu@foxmail.com
mageedu@126.com
}
notification_email_from xxx@163.com #定义发送者邮箱,这里随意填
smtp_server 127.0.0.1
smtp_connect_timeout 30 #连接超时30秒
router_id LVS_DEVEL #定义id,我们使用默认就好
#vrrp_mcast_group4 224.0.100.18 #定义组播地址,建议最好使用
}
vrrp_instance VI_1 { #定义虚拟路由地址 state MASTER #我们K1为MASTER interface eth0 #在那口网卡,Centos 7 是enoxxxx virtual_router_id 51 #虚拟路由ID,必须一样主从 priority 100 #优先级 advert_int 1 #默认1秒就好, authentication { #认真 auth_type PASS #keepalived只支持俩中认证,这里使用第二种简单密码认证,也就是预认证 auth_pass 123456 #使用openssh rant -base64 6 获取随机密码,最长支持八位所以也就是后面使用6的原因 }
virtual_ipaddress { #定义虚拟IP地址
192.168.126.217
}
}
如果只是用keepalived配置高可用,到此即可,以下为负在均衡的配置
virtual_server 192.168.16.215 80 { #定义keepalived集群VIP地址 delay_loop 6 #检查周期6秒 lb_algo rr #调度算法 lb_kind DR #调度模型 protocol TCP #只支持TCP,所以想想就好 sorry_server 127.0.0.1 80 #用于集群挂掉了,提示的友好界面,比如提示:服务器正在维护等等友好信息...
real_server 192.168.126.213 443 { #定义R1
weight 1 #权重,我们是rr调度,权重可以忽略
HTTP_GET { #这里我们使用的HTTP 443端口
connect_timeout 3 #连接超时时长,3秒
nb_get_retry 3 #重试3次
delay_before_retry 3 #每次重试的时间间隔3秒
}
}
real_server 192.168.126.214 443 { #定义R2 weight 1 #权重 HTTP_GET { #这里我们使用的HTTP 80端口
connect_timeout 3 #连接超时时长,3秒
nb_get_retry 3 #重试3次
delay_before_retry 3 #每次重试的时间间隔3秒
}
}
}保存 scp keepalived.conf 到HA2 HA2: 6)修改keepalived.conf改动两处 vrrp_instance VI_1 { state BACKUP #这里不同,是BACKUP interface eth0 virtual_router_id 51 priority 98 #这里不同,优先级是98,下面其他都一样 advert_int 1 authentication { auth_type PASS auth_pass 123456 }保存 HA1和HA2: 7)安装ipvsadm,便于检查负载均衡机 检查内核是否有ipvsadm模块 lsmod |grep ip_vs 8)启动keepalived service keepalived start 9)下线一个HA主机,检查另一台主机是否顶替上去。