LVS+Keepalive群集

一、keepalive概述

1.1 keepalive案例

  • 企业应用中,单台服务器承担应用存在
  • 单点故障的危险单点故障一旦发生,企业服务将发生中断,造成极大的危害

1.2 keepalive工具介绍

专为LVS和HA设计的一款健康检查工具

  • 支持故障自动切换(Failover)
  • 支持节点健康状态检查(Health Checking)
  • 官方网站: http://www.keepalived.org/

1.3 keepalive原理

Keepalived采用VRRP热备份协议,实现Linux服务器的多机热备功能

VRRP(虚拟路由冗余协议)是针对路由器的一种备份解决方案

  • 由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
  • 每个热备组内同时只有一台主路由器提供服务,其他路由器处于冗余状态
  • 若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

1.4 keepalive案例

Keepalived可实现多机热备,每个热备组可有多台服务器

双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器

实现基于Web服务的双机热备

  • 漂移地址:192.168.10.100
  • 主、备服务器:192.168.10.11、192.168.10.12
  • 提供的应用服务:Web

1.5 keepalive安装与启动

  • 首先在LVS群集环境中应用是,需要用到ipvsadm管理工具

      modprobe ip_vs
      cat /proc/net/ip_vs
      yum -y install ipvsadm
    
  • keepalive的安装

      tar zxvf keepalived-2.0.13.tar.gz
      cd keepalived-2.0.13/
      ./configure --prefix=/
      make && make install
      cd /keepalived/etc/init.d/keepalived /etc/init.d/
      systemctl enable keepalived.service
    
  • keepalive配置文件

      vi /etc/keepalived/keepalived.conf
      ! Configuration File for keepalived
      global_defs {
      router_id lvs_01
      }
      vrrp_instance vi_1 {
      state MASTER
      interface ens33
      virtual_router_id 51
      priority 110
      advert_int 1
      authentication {
      auth_type PASS
      auth_pass 6666
      }
      virtual_ipaddress {
      192.168.10.100
      }
      }
      virtual_server 192.168.10.100 80 {
      delay_loop 6
      lb_algo rr
      lb_kind DR
      persistence_timeout 6
      protocol TCP
      real_server 192.168.10.13 80 {
      weight 1
      TCP_CHECK {
      connect_port 80
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
      }
      }
      real_server 192.168.10.14 80 {
      weight 1
      TCP_CHECK {
      connect_port 80
      connect_timeout 3
      nb_get_retry 3
      delay_before_retry 3
      }
      }
      }
    

二、部署LVS和keepalive群集

2.1 共享服务器的配置

yum -y install nfs-utils rpcbind
mkdir /opt/web1
mkdir /opt/web2
echo "<h1>this is web1</h1>" >> /opt/web1/index.html
	echo "<h1>this is web2</h1>" >> /opt/web2	/index.html
vi /etc/exports
/opt/web1 192.168.10.13(ro)
/opt/web2 192.168.10.14(ro)
systemctl start nfs
systemctl restart rpcbind
showmount -e

在这里插入图片描述

2.2 web节点上面的配置

  • 挂载内容,开启httpd服务

      yum -y install httpd
      mount 192.168.10.19:/opt/web1 		/var/www/html
      df -Th
      curl http://localhost
    
  • 配置节点

      vi web1.sh
      #!/bin/bash
      # lvs web1
      ifconfig lo:0 192.168.10.100 broadcast 		192.168.10.100 netmask 255.255.255.255 up
      route add -host 192.168.10.100 dev lo:0
      echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
      echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
      echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
      echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
      sysctl -p &> /dev/null
    

在这里插入图片描述

2.3 调度器上的配置

	modprobe ip_vs
	cat /proc/net/ip_vs
	yum -y install ipvsadm
	
	tar zxvf keepalived-2.0.13.tar.gz
	cd keepalived-2.0.13/
	./configure --prefix=/
	make && make install
	cd /keepalived/etc/init.d/keepalived /etc/init.d/
	systemctl enable keepalived.service

	vi /etc/keepalived/keepalived.conf
	! Configuration File for keepalived
	global_defs {
	router_id lvs_01
	}
	vrrp_instance vi_1 {
	state MASTER
	interface ens33
	virtual_router_id 51
	priority 110
	advert_int 1
	authentication {
	auth_type PASS
	auth_pass 6666
	}
	virtual_ipaddress {
	192.168.10.100
	}
	}
	virtual_server 192.168.10.100 80 {
	delay_loop 6
	lb_algo rr
	lb_kind DR
	persistence_timeout 6
	protocol TCP
	real_server 192.168.10.13 80 {
	weight 1
	TCP_CHECK {
	connect_port 80
	connect_timeout 3
	nb_get_retry 3
	delay_before_retry 3
	}
	}
	real_server 192.168.10.14 80 {
	weight 1
	TCP_CHECK {
	connect_port 80
	connect_timeout 3
	nb_get_retry 3
	delay_before_retry 3
	}
	}
	}

systemctl start keepalived
备用调度器上面的配置与主配置相似,但是保证服务能够正常的运行,需要保证router_id的唯一性,以及优先级的不同。需要修改如下的配置:

vi /etc/keepalived/keepalive.conf
router_id lvs_02
state BACKUP
priority 105

2.4 群集功能的验证

在浏览器上面访问虚拟地址:
在这里插入图片描述在这里插入图片描述在主备调度器上面可以查询到网页访问情况:

在这里插入图片描述为了验证备份调度器的功能,我们可以手动关闭主动调度器的keepalive功能

systemctl stop keepalive

在这里插入图片描述可以发现虚拟地址漂移到了备份的调度器上面。

再重新启动原主备调度器的keepalive功能,又可以发现地址重新回到了原主备调度器上面。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50344820/article/details/110950361