(实验准备1号机主keepalived,2号机从keepalived,3号机web1,4号机web2)
1号机#
#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=172.16.16.173 (ESC:wq)
#ifdown ens33; ifup ens33
#systemctl stop firewalld
#setenfore 0
#vim /etc/sysctl.conf // 配置内核参数,防止icmp重定向
添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
保存退出
#sysctl -p
#modprobe ip_vs //调用lvs
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d/
#ls (默认将第一个备份为Centos-Base.repo.bak)
#mv Centos-Base.repo Centos-Base.repo.bak
#vim Centos-Base.repo
【a】
baseurl=file:///mnt
gpgcheck=0 (ESC:wq)保存退出
#yum clean all (清除缓存)
#yum -y install keepalived ipvsadm
#vim /etc/keepalived/keepalived.conf // 配置keepalive 主
! Configuration File for keepalived
global_defs { //删除以下8行
router_id LVS_HA_R1 //本路由名称 (删除DEVEL改为HA_R1)
}
vrrp_instance VI_1 { //定义热备份
state MASTER //主热备份
interface ens33 //改eth0为ens33 (承载ip的物理接口)
virtual_router_id 1 //改55为1 (虚拟路由ID每个热备份组需要保持一致)
priority 100 //主优先级(主比从大些)
advert_int 1 //通知间隔秒数
authentication { 认证信息
auth_type PASS 认证类型
auth_pass 1111 密码字符串
}
virtual_ipaddress {
172.16.16.172 //指定漂移ip地址
}
}
virtual_server 172.16.16.172 80 { //虚拟服务IP地址
delay_loop 6 健康检查间隔时间
lb_algo rr 轮询调度算法
lb_kind DR 直接路由DR群集工作模式
! persistence_timeout 50 //连接保持时间,启用去除!
protocol TCP 采用TCP协议
real_server 172.16.16.177 80 { //第一个web节点地址,端口号
weight 1
TCP_CHECK { //手动添加以下6行
connect_port 80 //检查目标端口
connect_timeout 3 //连接超时
nb_get_retry 3 //重试次数
delay_before_retry 4 //重试间隔
}
}
real_server 172.16.16.178 80 { //第二个节点 (复制第一个节点的9行)
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
} //切记添加此符号
保存退出
#systemctl start keepalived //启动keepalive
#ip addr show dev ens33 //查看漂移地址
2号机#
#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=172.16.16.174 (ESC:wq)
#ifdown ens33; ifup ens33
#systemctl stop firewalld
#setenfore 0
#vim /etc/sysctl.conf // 配置内核参数,防止icmp重定向
添加:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
保存退出
#sysctl -p
#modprobe ip_vs //调用lvs
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d/
#ls (默认将第一个备份为Centos-Base.repo.bak)
#mv Centos-Base.repo Centos-Base.repo.bak
#vim Centos-Base.repo
【a】
baseurl=file:///mnt
gpgcheck=0 (ESC:wq)保存退出
#yum clean all (清除缓存)
#yum -y install keepalived ipvsadm
#vim /etc/keepalived/keepalived.conf // 配置keepalive 从
! Configuration File for keepalived
global_defs {
router_id LVS_HA_R2 //第二遍路由
}
vrrp_instance VI_1 {
state BACKUP //从备份
interface ens33
virtual_router_id 1
priority 90 //从数字比主要小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.16.172
}
}
virtual_server 172.16.16.172 80 {
delay_loop 6
lb_algo rr
lb_kind DR
! persistence_timeout 50
protocol TCP
real_server 172.16.16.177 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
real_server 172.16.16.178 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 4
}
}
}
保存退出
#systemctl start keepalived //启动keepalive
#ip addr show dev ens33 //查看漂移地址
3号机#
#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=172.16.16.177 (ESC:wq)
#ifdown ens33; ifup ens33
#systemctl stop firewalld
#setenfore 0
#cd /etc/sysconfig/network-scripts/
#cp ifcfg-lo ifcfg-lo:0
#vim ifcfg-lo:0
改为:
DEVICE=lo:0
IPADDR=172.16.16.172
NETMASK=255.255.255.255
ONBOOT=yes
保存退出
#ifup lo:0
#vim /etc/rc.local
添加到低行:
/sbin/route add -host 172.16.16.172 dev lo:0 (esc:wq)保存退出
#route add -host 172.16.16.172 dev lo:0
#vim /etc/sysctl.conf
添加:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
保存退出
#sysctl -p
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d/
#ls (默认将第一个备份为Centos-Base.repo.bak)
#mv Centos-Base.repo Centos-Base.repo.bak
#vim Centos-Base.repo
【a】
baseurl=file:///mnt
gpgcheck=0 (ESC:wq)保存退出
#yum clean all (清除缓存)
#yum -y install httpd
#echo "www.benet.com" > /var/www/html/index.html
#systemctl start httpd
4号机#
#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=172.16.16.178 (ESC:wq)
#ifdown ens33; ifup ens33
#systemctl stop firewalld
#setenfore 0
#cd /etc/sysconfig/network-scripts/
#cp ifcfg-lo ifcfg-lo:0
#vim ifcfg-lo:0
改为:
DEVICE=lo:0
IPADDR=172.16.16.172
NETMASK=255.255.255.255
ONBOOT=yes
保存退出
#ifup lo:0
#vim /etc/rc.local
添加到低行:
/sbin/route add -host 172.16.16.172 dev lo:0 (esc:wq)保存退出
#route add -host 172.16.16.172 dev lo:0
#vim /etc/sysctl.conf
添加:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
保存退出
#sysctl -p
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d/
#ls (默认将第一个备份为Centos-Base.repo.bak)
#mv Centos-Base.repo Centos-Base.repo.bak
#vim Centos-Base.repo
【a】
baseurl=file:///mnt
gpgcheck=0 (ESC:wq)保存退出
#yum clean all (清除缓存)
#yum -y install httpd
#echo "www.accp.com" > /var/www/html/index.html
#systemctl start httpd
(本主机:172.16.16.172测试)