Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦,与HeartBeat相比Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成。
作用:**Keepalived的作用是检测服务器的状态,**如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
keepalived的热备方式:
keepalived采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。
一,部署keepalived双机热备
安装Keepalived
yum install -y keepalived ipvsadm
控制Keepalived服务
systemctl enable keepalived
主服务器的配置
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak #备份配置文件
[root@localhost keepalived]# vim keepalived.conf
global_defs { #全局参数
router_id HA_TEST_R1 #本路由器(服务器)的名称
}
vrrp_instance VI_1 { #定义VRRP热备实例
state MASTER #热备状态,MASTER表示主路由器
interface ens33 #承载VIP地址的物理接口
virtual_router_id 51 #虚拟路由器的ID号,每个热备组保持一致
priority 100 #优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数
authentication { #认知信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass 1111 #密码字串
}
virtual_ipaddress { #指定漂移地址
192.168.2.254
}
}
开启服务,查看配置是否生效
[root@localhost keepalived]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:83:b0:2e brd ff:ff:ff:ff:ff:ff
inet 192.168.2.1/24 brd 192.168.2.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.2.254/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::f14d:4ec5:d7b2:c6c1/64 scope link
valid_lft forever preferred_lft forever
测试双机热备功能,配置两台keepalived服务器,设置相同的漂流地址,ping -t 漂流IP地址,持续ping通,查看效果,或在两台keepalived上搭建网页,访问查看效果,或查看日志文件查看主备服务器的迁移状态
1.连通性测试
2.web访问测试
3.查看日志记录
二,LVS+Keepalived高可用(DR)群集
一,配置Keepalived高可用
配置主调度器
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# vim keepalived.conf
global_defs { #全局参数
router_id HA_TEST_R1 #本路由器(服务器)的名称
}
vrrp_instance VI_1 { #定义VRRP热备实例
state MASTER #热备状态,MASTER表示主路由器
interface ens33 #承载VIP地址的物理接口
virtual_router_id 51 #虚拟路由器的ID号,每个热备组保持一致
priority 100 #优先级,数值越大优先级越高
advert_int 1 #通告间隔秒数
authentication { #认知信息,每个热备组保持一致
auth_type PASS #认证类型
auth_pass 1111 #密码字串
}
virtual_ipaddress { #指定漂移地址
192.168.2.254
}
}
配置从调度器
[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# vim keepalived.conf
global_defs {
router_id HA_TEST_R2
}
vrrp_instance VI_1 {
state BACKUP #热备状态,BACKUP表示从路由器
priority 90 #优先级,数值越大优先级越高
virtual_ipaddress { #指定漂移地址
192.168.2.254
}
}
调整proc配置文件 ,两天LVS都需要添加
[root@localhost ~]# vi /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
二,安装配置nginx服务
配置IP地址
第一台Nginx服务器
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.3 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::20c:29ff:fe1c:a1a4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1c:a1:a4 txqueuelen 1000 (Ethernet)
RX packets 17151 bytes 1481642 (1.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9028 bytes 904486 (883.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.1 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::20c:29ff:fe1c:a1ae prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1c:a1:ae txqueuelen 1000 (Ethernet)
RX packets 250 bytes 45678 (44.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 47 bytes 7062 (6.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第二台Nginx服务器
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.4 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::20c:29ff:feb5:b978 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b5:b9:78 txqueuelen 1000 (Ethernet)
RX packets 15495 bytes 1572697 (1.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7750 bytes 817696 (798.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.2 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::20c:29ff:feb5:b982 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:b5:b9:82 txqueuelen 1000 (Ethernet)
RX packets 155 bytes 16854 (16.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 283 bytes 46422 (45.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
安装依赖关系安装包
[root@localhost ~]# yum -y install pcre-devel zlib-devel
创建nginx需要指定的组
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
解压nginx源代码包,配置,编译,安装
[root@localhost ~]# tar zxf /mnt/nginx-1.12.0.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@localhost nginx-1.12.0]# make && make install
优化路径,将nginx可用执行执行
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
开启nginx服务
[root@localhost nginx-1.12.0]# nginx
三,在(两台)Nginx服务器上配置lo:0回环VIP地址并关闭ARP重定向
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.2.54
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0
为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。**
![](https://img-blog.csdnimg.cn/img_convert/f2c4109c7f7a2feee54ee8c31ceedccf.png)
本份面试集锦涵盖了
* **174 道运维工程师面试题**
* **128道k8s面试题**
* **108道shell脚本面试题**
* **200道Linux面试题**
* **51道docker面试题**
* **35道Jenkis面试题**
* **78道MongoDB面试题**
* **17道ansible面试题**
* **60道dubbo面试题**
* **53道kafka面试**
* **18道mysql面试题**
* **40道nginx面试题**
* **77道redis面试题**
* **28道zookeeper**
**总计 1000+ 道面试题, 内容 又全含金量又高**
* **174道运维工程师面试题**
> 1、什么是运维?
> 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
> 3、现在给你三百台服务器,你怎么对他们进行管理?
> 4、简述raid0 raid1raid5二种工作模式的工作原理及特点
> 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
> 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
> 7、Tomcat和Resin有什么区别,工作中你怎么选择?
> 8、什么是中间件?什么是jdk?
> 9、讲述一下Tomcat8005、8009、8080三个端口的含义?
> 10、什么叫CDN?
> 11、什么叫网站灰度发布?
> 12、简述DNS进行域名解析的过程?
> 13、RabbitMQ是什么东西?
> 14、讲一下Keepalived的工作原理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
理?
> 15、讲述一下LVS三种模式的工作过程?
> 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
> 17、如何重置mysql root密码?
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**