近期,项目中用户对服务的高可用有需求,所以就接触到了Keepalived。刚听到这玩意,我还嗤之以鼻,我和同事说对外提供服务的物理机挂掉,你再怎么HA也没用啊,除非提供多个IP,或者通过前置路由来解决问题。

结果现实很打脸,Keepalived用到虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)完美的实现了HA。

工作原理先不写了,网上一搜很多,直接上离线安装的流程:

1、先下个源码:

链接:https://pan.baidu.com/s/1VyzPjd0HichRczgkGREUwg
提取码:7g70

2、编译安装zlib、openssl

源码包拷贝到/usr/local/src/目录下,
(1)先解压编译安装zlibtar xvf zlib-1.2.8.tar.gz
cd /usr/local/src/zlib-1.2.8构建静态库
.../zlib-1.2.8]# ./configure
.../zlib-1.2.8]# make test
.../zlib-1.2.8]# make install构建共享库
.../zlib-1.2.8]# make clean
.../zlib-1.2.8]# ./configure --shared
.../zlib-1.2.8]# make test
.../zlib-1.2.8]# make install
.../zlib-1.2.8]# cp zutil.h /usr/local/include
.../zlib-1.2.8]# cp zutil.c /usr/local/include
完成(2)再解压编译安装openssltar xvf openssl-1.1.0j.tar.gz
cd /usr/local/src/openssl-1.1.0j编译安装
.../openssl-1.1.0j]# ./config shared zlib
.../openssl-1.1.0j]# make depend
.../openssl-1.1.0j]# make && make install
.../openssl-1.1.0j]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
.../openssl-1.1.0j]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

3、依赖组件安装完成后,开始安装Keepalived

tar xvf keepalived-2.1.0.tar.gz
cd keepalived-2.1.0[root@master keepalived-2.1.0]# ./configure --prefix=/usr/local/keepalived
[root@master keepalived-2.1.0]# make && make install完成后会在以下路径生成:
/usr/local/etc/keepalived/keepalived.conf
/usr/local/etc/sysconfig/keepalived
/usr/local/sbin/keepalived

4、配置启动Keepalived

# keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可(安装目录下)
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived # 将keepalived主程序加入到环境变量(安装目录下)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived# keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
cp /usr/local/src/keepalived-2.1.0/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived# 将配置文件放到默认路径下
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf加为系统服务:chkconfig --add keepalived
开机启动:chkconfig keepalived on
启动、关闭、重启
systemctl start keepalived
systemctl stop keepalived
systemctl restart keepalived配置启动keepalived
修改默认配置文件/etc/keepalived/keepalived.conf

A节点(需要注意的是,eth0  这个的网卡名称一定别弄错了,要弄成自己的。可以使用 ip a 命令查看)

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from root@localhostsmtp_server localhostsmtp_connect_timeout 30router_id NodeA
}vrrp_instance VI_1 {state BACKUP   #指定A节点为主节点 备用节点上设置为BACKUP即可  interface em1   #绑定虚拟IP的网络接口  virtual_router_id 51   #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组  priority 100   #主节点的优先级(1-254之间),备用节点必须比主节点优先级低  advert_int 1   #组播信息发送间隔,两个节点设置必须一样  authentication {   #设置验证信息,两个节点必须一致  auth_type PASSauth_pass 1111}virtual_ipaddress {   #指定虚拟IP, 两个节点设置必须一样  192.168.1.100}
}

B节点只需要修改三个地方:

router_id  NodeB
state   BACKUP
priority   99

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {root@localhost}notification_email_from root@localhostsmtp_server localhostsmtp_connect_timeout 30router_id NodeB
}vrrp_instance VI_1 {  state BACKUPinterface em1virtual_router_id 51priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.100}
}

配置完成后,在A节点和B节点启动Keepalived就可以,

systemctl start keepalived

然后,可以通过查看服务状态来确定是否启动成功:

systemctl status keepalived

A节点作为主节点启动后,会在上面命令行查看状态中显示已绑定的虚拟IP的地址(也可以通过ip a命令查看虚拟ip是否绑定到网卡来确定);

B节点作为备用节点启动后,会在上面命令行查看状态中显示BACKUP节点初始化成功。

此时就可以通过虚拟IP来实现HA了,此时如果A节点挂掉,虚拟IP地址192.168.1.100会自动绑定到B节点的网卡上,可以通过 ip a命令查看。

(有搞不明白的可以留言沟通,觉得有帮助的可否一个个小小的赞 ^_^)

Centos7离线安装和配置Keepalived相关推荐

  1. RHEL7/CentOS7在线和离线安装GitLab配置使用实践

    前言 GitLab Community Edition 新版本已经集成了CI/CD的支持,从某种程度上来说可以告别对于Jenkins的依赖,我本来计划是写基于Docker部署GitLab但感觉还是有点 ...

  2. centos7离线安装ansible

    centos7离线安装ansible: 1.通过在线的centos7将rpm包下载好了,上传到指定服务器. 下载官方repo,rpm -iUvh http://dl.Fedoraproject.org ...

  3. CentOS7 离线安装 ZABBIX 5.0

    小伙伴可能遇到了在公司内网环境下无法访问外网情况,无法访问外网yum源部署ZABBIX 对于rpm包依赖问题比较头疼.本文将会进行离线部署实战. 离线安装所需依赖的rpm包.这个包怎么下载呢?依赖的包 ...

  4. centos7离线安装mysql_CentOS7离线安装MySQL的教程详解

    1.删除原有的mariadb,不然mysql装不进去 mariadb-libs-5.5.52-1.el7.x86_64 rpm -qa|grep mariadb rpm -e --nodeps mar ...

  5. 2020.9.16工作问题记录————CentOS6离线安装nginx和keepalived

    工作问题记录----CentOS6离线安装nginx和keepalived 1.下载 nginx 和 keepalived 安装包并传入虚拟机: nginx 下载地址:http://nginx.org ...

  6. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  7. XenCenter软件中的Centos7离线安装yum源,不用wget和crul

    XenCenter软件中的Centos7离线安装yum源,不用wget和crul 1.去网站http://mirrors.163.com/centos/7/os/x86_64/Packages/下载文 ...

  8. 记一次 Centos7 yum 安装、配置 PgAdmin4

    一.基础信息说明 官网:https://www.pgadmin.org/ 下载:https://www.pgadmin.org/download/pgadmin-4-windows/ 阿里帮助文档:h ...

  9. nginx--如何基于rpm包进行离线安装及配置(Linux)

    [背景说明] 1.很多情况下,公司的生产环境一般都是内网,而大多数的内网Linux环境,一般都是无法直接在线安装nginx等工具的,此时就可以通过rpm安装包进行离线安装及配置. 2.安装nginx一 ...

最新文章

  1. 学习观察神经网络:可视化整个模型训练中卷积层的激活
  2. 计算机视觉系统怎样剖析“看到”的一切?
  3. 仿IOS效果-带弹簧动画的ListView
  4. 设计Qt风格的C++API
  5. 给定一个函数做其最佳平方逼近c语言,求函数f(x)在指定区间上对于Φ=span{1,x}最佳平方逼近多项式: (1),[1,3]; (2...
  6. 速达服务器账套定期维护么,速达软件常见操作问题解决方法
  7. 多线程“基础篇”11之 生产消费者问题
  8. 每日小记2017.9.4
  9. java画图颜色_手绘板,多种颜色选择。我抄的《疯狂java讲义》的,包我乱导的,但代码能用。...
  10. Windows 10 PC 安装 Docker CE
  11. Spring Boot Questions- Part 1
  12. Exchange 2013 MAPI over HTTP
  13. 如何构建NTP时间服务器
  14. 服务器×××上的MSDTC不可用解决办法
  15. html中panel居中显示图片,editorgridpanel
  16. linux centos7 安装svn,linux centos7安装svn并配置同步更新web项目
  17. eventscheduler mysql_Mysql 中的事件 事件调度器(Event Scheduler)
  18. 经验分享:半桥电路的工作原理及注意问题(转载)
  19. python中关系运算符惰性求值_python对象属性惰性取值
  20. 什么样的项目适合UI自动化测试

热门文章

  1. 教你创建virtuemart invoice收据 发票
  2. 数据链路层 功能 封装成帧 透明传输 字符计数法 字符填充法 零比特填充法 违规编码法 传输中的差错 差错控制 冗余编码 奇偶校验码 CRC循环冗余码 检错过程 细解 图解 通俗易懂
  3. python 对10个数进行排序
  4. Docker ~ 从入门到实践
  5. 技术开发项目收获了什么_惊呼!克州拼拼优米有什么优势
  6. 双泳道活动图java代码_如何绘制泳道图(跨职能流程图)
  7. IDEA安装JavaFx
  8. 某个音乐网站的音乐地址寻找方式
  9. 微信小程序之from表单提交数据到PHP后台
  10. matlab如何把纵轴压扁,Matlab基础知识