准备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主机,检查另一台主机是否顶替上去。