博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
keepalived+lvs高可用负载均衡集群
阅读量:6004 次
发布时间:2019-06-20

本文共 3240 字,大约阅读时间需要 10 分钟。

准备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程序。

搜索下载对应版本的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主机,检查另一台主机是否顶替上去。

转载于:https://blog.51cto.com/13484913/2128055

你可能感兴趣的文章
python之处理异常
查看>>
遍历form表单里面的表单元素,取其value
查看>>
PHP TP框架基础
查看>>
directive ngChecked
查看>>
面试110道题
查看>>
python 08 文件操作
查看>>
强势解决:windows 不能在本地计算机中起动Tomcat参考特定错误代码1
查看>>
Gradle 配置debug和release工程目录
查看>>
curl指令的使用
查看>>
LNAMP第二版(nginx 1.2.0+apache 2.4.2+php 5.4)
查看>>
MongoDB repl set权限认证配置步骤
查看>>
java学习笔记(1)
查看>>
禁止Mysql默认端口访问Internet - MySQL - IT技术网
查看>>
基于用户投票的排名算法(二):Reddit
查看>>
下午最后的草坪
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
用PHP读取和编写XML DOM4
查看>>
1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组...
查看>>
vim配置及快捷键
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>