linux运维学习笔记:集群系列之04:keepalived
作者:周少言
2018年 1月 ,于北京
声明:本博客是本人周少言在某培训机构学习期间所写,其中参考借鉴了他人的博客,本文将会选择性给出相关链接,如有侵权,恳请告知。本文如有错误,恳请告知,欢迎交流。
在LVS_DR 实验基础上继续进行以下实验
本次实验所需要的资料下载
链接:https://pan.baidu.com/s/1htULzQs 密码:co24
xshell可用lrzsz将其拖拽到/root目录下
环境规划
director 192.168.22.32
web1 192.168.22.33
web2 192.168.22.34
虚拟IP 192.168.22.39
备用director 192.168.22.35
配置负载调度器 192.168.22.32
安装keepalived
yum -y install kernel-devel openssl-devel popt-devel gcc*
cd /root
mkdir /iso
mount -o loop Keepalived.iso /iso
cd /iso; ls
tar xf keepalived-1.2.2.tar.gz -C /usr/src
cd /usr/src/ ; ls
cd keepalived-1.2.2/ ; ls
必须将源码包文件拷贝到/usr/src下面安装
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-642.el6.x86_64/
make && make install
ls -l /etc/init.d/keepalived
chkconfig --add keepalived
chkconfig keepalived on
配置master keepalived
vim /etc/keepalived/keepalived.conf
以下为一种实验配置
Configuration File for keepalived
global_defs {
router_id R1
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 66
priority 51
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.22.39
}
}
virtual_server 192.168.22.39 80 {
delay_loop 1
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.22.33 80 {
weight 1
TCP_CHECK { //状态检查方式
connect_port 80 //检查的目标端口
connect_timeout 1 //连接超时(秒)
nb_get_retry 1 //重试次数
delay_before_retry 1 //重试间隔(秒)
}
}
real_server 192.168.22.34 80 {
weight 1
TCP_CHECK { //状态检查方式
connect_port 80 //检查的目标端口
connect_timeout 1 //连接超时(秒)
nb_get_retry 1 //重试次数
delay_before_retry 1 //重试间隔(秒)
}
}
}
service keepalived start
配置备用负载调度器 192.168.22.35
配置LVS_DR director
service NetworkManager stop
chkconfig NetworkManager off
cd /etc/sysconfig/network-scripts/
cp -a ifcfg-eth0 ifcfg-eth0:0
vim ifcfg-eth0:0
DEVICE=eth0:0
IPADDR=虚拟IP
NETMASK=255.255.255.0
ifup eth0:0
此时会报错:
修改配置文件 vim ifup-eth
注释第247行到251行这五行内容。
修改内核参数。防止相同网络地址广播冲突,如果有多快网卡需要设置多行
net.ipv4.conf.eth0.send_redirects = 0
vim /etc/sysctl.conf
#LVS
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
sysctl -p 刷新内核参数
modprobe ip_vs 查看内核是否加载, 无反应,则已经加载
cat /proc/net/ip_vs 参看版本, 确认是否正确加载
安装ipvsadm管理工具
yum -y install ipvsadm
ipvsadm -v
安装keepalived
yum -y install kernel-devel openssl-devel popt-devel gcc*
cd /root
mkdir /iso
mount -o loop Keepalived.iso /iso
cd /iso; ls
tar xf keepalived-1.2.2.tar.gz -C /usr/src
cd /usr/src/ ; ls
cd keepalived-1.2.2/ ; ls
必须将源码包文件拷贝到/usr/src下面安装
./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-642.el6.x86_64/
make && make install
chkconfig --add keepalived
chkconfig keepalived on
配置slave keepalived
vim /etc/keepalived/keepalived.conf
以下为一种实验配置
Configuration File for keepalived
global_defs {
router_id R2
}
vrrp_instance VI_1 {
state SLAVE
interface eth0
virtual_router_id 66
priority 3
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.22.39
}
}
virtual_server 192.168.22.39 80 {
delay_loop 1
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.22.33 80 {
weight 1
TCP_CHECK { //状态检查方式
connect_port 80 //检查的目标端口
connect_timeout 1 //连接超时(秒)
nb_get_retry 1 //重试次数
delay_before_retry 1 //重试间隔(秒)
}
}
real_server 192.168.22.34 80 {
weight 1
TCP_CHECK { //状态检查方式
connect_port 80 //检查的目标端口
connect_timeout 1 //连接超时(秒)
nb_get_retry 1 //重试次数
delay_before_retry 1 //重试间隔(秒)
}
}
}
service keepalived start
查看keepalived数据是否同步
ipvsadm -Ln --status
测试
模拟LVS_DR负载调度器出现故障
可断开该主机的网络连接,或者关机。
本实验采用关机,将192.168.22.32关机
然后访问192.168.22.39
如果能够实现负载均衡,则备用负载调度器配置成功。