1. 简述 Keepalived 的主要功能、应用场合。
keepalived是什么? Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。 Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。 所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。
keepalived 有三个重要的功能,分别是:
- 管理LVS负载均衡软件
- 实现LVS集群节点的健康检查
- 作为系统网络服务的高可用性(failover)
使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用keepalive
举个栗子:
当我们从首页–>列表页–>商详页–>再返回,这时候列表页应该是需要keep-alive
从首页–>列表页–>商详页–>返回到列表页(需要缓存)–>返回到首页(需要缓存)–>再次进入列表页(不需要缓存),这时候可以按需来控制页面的keep-alive
2. 使用 Keepalived 实现双机热备时,主、备服务器的配置存在哪些区别?
Keepalived实现双机热备 VRRP的热备方式,Keepalived可以用做服务器故障切换,常用于双机热备,在双机热备的方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(如:web、ftp、fail、还是ssh、dns等)
在同一个Keepalived热备组内,所有配置文件基本相同,包括虚拟路由器的ID号、认证信息、漂移地址、心跳频率等。不同之处在于路由器名称,热备状态、优先级 路由器名称(router_id):建议为每个参与热备的服务器指定不同的名称 热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为BACKUP 优先级(priority):数值越大则取得 VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺VIP控制权时发生冲突
配置没有错误后启动,这时候主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备用状态,因此备用服务器中不会为ens33接口添加VIP地址
3. 构建 LVS+Keepalived 高可用群集时,如何缩短故障中断时间?
4. 基于 CentOS 7构建nginx的Keepalived 高可用群集。
添加链接描述
1. 环境准备
我们拿两台虚拟机来搭建nginx高可用环境,这两台设备分别是172.25.10.120 和 172.25.10.130并且都能够上网。
2. 安装依赖
-
安装vim命令,使用命令: yum install vim-enhanced -y -
安装gcc,使用命令: yum install make cmake gcc gcc-c++ -y -
安装依赖: ````yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel wget -y```
3.安装nginx
可以参考前面的文章 添加链接描述
安装nginx所需的pere库pere,peri兼容正则表达式 yum install -y pcre-devel 安装openssl-devel yum install -y openssl-devel 检查并安装nginx基础依赖包pcre-devel、openssl-devel rpm -qa | egrep 'pcre-devel|openssl-devel'
创建组和用户
groupadd -r -g 995 nginx
useradd -r -u 995 -g 995 -s /sbin/nologin -M nginx
下载nginx wget http://nginx.org/download/nginx-1.18.0.tar.gz 解压 tar xf nginx-1.18.0.tar.gz -C /usr/local/src/
编译
cd /usr/local/src/nginx-1.18.0/
./configure --user=nginx --group=nginx \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_auth_request_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_stub_status_module
编译和安装 make && make install
修改配置文件
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/After=network-online.target remote-fs.targe nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
systemctl daemon-reload 测试: systemctl enable --now nginx
启动完之后检查nginx是否已经正常启动 ps -ef | grep nginx
修改一下nginx的index页面 好区分不同虚拟机
cd /usr/local/nginx/html
vim index.html
重启nginx刷新页面就可以看到修改的页面了
4. 安装Keeplived
安装依赖 yum install curl libnl3-devel net-snmp-devel libnfnetlink-devel -y 下载keepalived安装包 wget --no-check-certificate https://www.keepalived.org/software/keepalived-1.2.18.tar.gz 解压 tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/ 配置 cd /usr/local cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived 编译安装 make && make install 配置开机服务 复制文件
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
创建软连接 ln -s /usr/local/sbin/keepalived /usr/sbin/ 创建keepalived.service文件
vim /lib/systemd/system/keepalived.service
[Unit]
Description=Keepalived
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/keepalived.pid
ExecStart=/usr/local/keepalived/sbin/keepalived -D
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置systemctl systemctl daemon-reload 重新加载
systemctl enable keepalived.service 设置开机自动启动
systemctl start keepalived.service 启动
systemctl status keepalived.service 查看状态
完成keepalived的安装
5. keepalived来实现nginx的高可用
修改下/etc/keepalived/keepalived.conf文件
|