什么叫keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
keepalived三个核心模块`
yum install keepalived ipvsadm -y
//设置路由数据包的转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#proc响应关闭重定向功能
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
//让参数生效
sysctl -p
//建立虚拟网卡
cp -p /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
//设置虚拟网卡
vim /etc/sysconfig/network-scripts//ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0
//编写启动脚本
vim /etc/init.d/dr.sh
#!/bin/bash
GW=192.168.100.1
VIP=192.168.100.10
RIP1=192.168.100.201
RIP2=192.168.100.202
case "$1" in
start)
/sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
/sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
/sbin/route add -host $VIP dev ens33:0
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
echo "ipvsadm starting------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped--------------------[ok]"
;;
stop)
/sbin/ipvsadm -C
systemctl stop ipvsadm
ifconfig ens33:0 down
route del $VIP
echo "ipvsamd stoped--------------------[ok]"
;;
status)
if [ ! -e ar/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped--------------------"
exit 1
else
echo "ipvsamd Runing-------------[ok]"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
//加入权限
chmod +x /etc/init.d/dr.sh
更改网卡为仅主机相连模式
//更改网卡为静态网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
//DR1服务器
IPADDR=192.168.100.110
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
//DR2服务器
IPADDR=192.168.100.111
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#把DHCP换成static
//重启服务
service network start
//启动虚拟网卡
ifup ens33:0
//启动dr.sh脚本
service dr.sh start
//关闭防火墙
systemctl stop firewalld.service
setenforce 0
建立两台节点服务器web(apache)
//安装apache服务
yum install httpd -y
//关闭防火墙
systemctl stop firewalld.service
setenforce 0
//创建首页
#web1服务器
vim /var/www/html/index.html
<h1>this is kgc</h1>
web2服务器
vim /var/www/html/index.html
<h1>this is accp</h1>
设置回环地址
//创建虚拟网卡
cp -p /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes
//编辑启动脚本(web2将通过远程复制操作以下脚本)
vim /etc/init.d/web.sh
#!/bin/bash
VIP=192.168.100.10
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
sysctl -p > /dev/null 2>&1
echo "RealServer Start OK "
;;
stop)
ifconfig lo:0 down
route del $VIP /dev/null 2>&1
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
//将脚本文件远程复制到web2服务器上(地址:192.168.183.150)
scp /etc/init.d/web.sh [email protected]:/etc/init.d/web.sh
//给权限
chmod +x /etc/init.d/web.sh
将虚拟据网卡修改问静态模式(仅主机相连模式)
/修改网卡
#web1服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.100.201
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#web2服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.100.202
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
#把DHCP换成static
//重启服务
service network start
//启动脚本文件
service web.sh start
//启动apache服务
systemctl start httpd
//启动回环地址
ifup lo:0
搭建双机热备
//修改配置文件
cd /etc/keepalived/
vim /keepalived.conf
//修改文件
smtp_server 127.0.0.1
router_id LVS_01
interface ens33
virtual_router_id 10
#将下面两行IP地址删除 192.168.100.16修改为虚拟主机地址192.168.100.10
29 virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
//修改文件
34 virtual_server 192.168.100.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
//将元IP地址改为web地址(192.168.100.201 端口改为80)在weight 1下面一行删除9行并加入TCP_CHECK {
、connect_port 80
real_server 192.168.100.201 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
//复制上面修改的real_server在49行复制并将IP地址改为192.168.100.202
real_server 192.168.100.202 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
//在60行往后删除
//重启服务
systemctl start keepalived.service
//将改好的文件通过远程复制给web2(192.168.100.111)
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/
//修改web2中keepalived配置文件
vim /etc/keepalived/keepalived.conf
router_id LVS_02
vrrp_instance VI_1 {
state BACKUP
priority 90
//重启服务
systemctl start keepalived.service
注意:如果ping不通要重启服务