当前位置: 首页 > news >正文

keepalived 服务高可用(简约版)

本文基于centos 7记述如何使用keepalived

背景

为生产环境准备一台备机是极其必要的,防止主机宕掉无服务可用的情况出现。但是同一局域网内每台主机都分配了一个唯一IP,这些IP既然相互不同,那么服务请求的时候岂不是要切换IP地址?其实大可不必,我们不妨设想一下,如果有一个虚拟IP,可以动态地分配到能够提供服务的机器上:一台宕机,当前宕机的机器绑定的虚拟IP立马绑定到另一台主机上继续提供服务,岂不是完美解决了这一问题!keepalived就是为此而生的。

安装

我准备了2台主机(192.168.0.100,192.168.0.101)暂定虚拟IP:192.168.0.145,都部署了一模一样的nginx服务,现在安装keepalived,两台主机都执行以下命令

yum install -y keepalived

如果出现缺包的情况,可以尝试安装yum install -y openssl-devel(我安装时出的问题,这里仅供参考)

配置

进入/etc/keepalived/目录,找到文件keepalived.conf,删除里面的数据,主机填入配置

! Configuration File for keepalivedglobal_defs {router_id master # 机器名(自定义)
}vrrp_instance VI_1 {state MASTERinterface enp0s3# 虚拟路由ID,粗略学习的话,主备不用改这个值virtual_router_id 51# 顶替服务的权重,值越大权重越高priority 100 # 通告频率,单位为秒advert_int 1# 通信认证机制(主备配置中此项必须相同)authentication {auth_type PASS # 组名(同一组的机器才能共享virtual IP)auth_pass 1111 # 组密码}# 虚拟IPvirtual_ipaddress {192.168.0.145}
}

备机填入配置

! Configuration File for keepalived
global_defs {router_id slave 
}vrrp_instance VI_1 {state BACKUP interface enp0s3virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.0.145}
}

两台都配置完成后,正常保存即可。

启动

主备机都执行以下命令

systemctl start keepalived

查看状态

systemctl status keepalived

打印结果如下证明启动成功

[root@localhost ~]# systemctl status keepalived
● keepalived.service - LVS and VRRP High Availability MonitorLoaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor                                                                                 preset: disabled)Active: active (running) since Wed 2024-06-26 09:40:21 EDT; 25min agoProcess: 2777 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited,                                                                                 status=0/SUCCESS)Main PID: 2778 (keepalived)CGroup: /system.slice/keepalived.service├─2778 /usr/sbin/keepalived -D├─2779 /usr/sbin/keepalived -D└─2780 /usr/sbin/keepalived -D

验证

现在你用ip addr命令查看一下主机的IP地址,以下是我的打印,IP145已经绑定到这台主机上了,反观备机执行ip addr,就不会有IP145

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:74:40:4c brd ff:ff:ff:ff:ff:ffinet 192.168.0.100/24 brd 192.168.0.255 scope global noprefixroute enp0s3valid_lft forever preferred_lft foreverinet 192.168.0.145/32 scope global enp0s3valid_lft forever preferred_lft foreverinet6 fe80::ea55:5c05:1f91:3173/64 scope link noprefixroutevalid_lft forever preferred_lft forever

现在,你用一台电脑访问虚拟IP,看看nginx是否能够代理到对应的服务上,如果可以成功访问服务,那么进入下一步:主机reboot -f重启,然后马上去备机上再次执行ip addr,看看145是不是跑到备机上了,如果是,证明成功了

http://www.lryc.cn/news/384103.html

相关文章:

  • 【前端】Vue项目和微信小程序生成二维码和条形码
  • 同时使用接口文档swagger和knife4j
  • Compose - 权限申请
  • 第十九条:要么为继承而设计并提供文档说明,要么就禁止继承
  • Node.js全栈指南:浏览器显示一个网页
  • Linux远程桌面(Ubuntu/Deepin)——安装和使用 VNC 及通过 noVNC 实现浏览器实现远程桌面访问教程
  • 2024年最新通信安全员考试题库
  • SpringMVC系列八: 手动实现SpringMVC底层机制-下
  • 【昇思初学入门】第八天打卡-模型保存与加载
  • 喜报!极限科技新获得一项国家发明专利授权:“搜索数据库的正排索引处理方法、装置、介质和设备”
  • 深入探讨:UART与USART在单片机中串口的实际应用与实现技巧
  • Windows上PyTorch3D安装踩坑记录
  • 操作符详解(上) (C语言)
  • 使用 audit2allow 工具添加SELinux权限的方法
  • 一文弄懂FPGA
  • Rust 中使用 :: 这种语法的几种情况
  • Ruby langchainrb gem and custom configuration for the model setup
  • 高校新生如何选择最优手机流量卡?
  • QT QML 生成二维码
  • IDEA中Maven--下载安装自己适配的版本---理解
  • 【osgEarth】Ubuntu 22.04 源码编译osgEarth 3.5
  • ASP.NET Core 6.0 使用 资源过滤器和行为过滤器
  • 电脑屏幕花屏怎么办?5个方法解决问题!
  • git 初基本使用-----------笔记
  • Redis-数据类型-Bit的基本操作-getbit-setbit-Bitmap
  • 统信UOS上鼠标右键菜单中添加自定义内容
  • 学习入门 chatgpt原理 一
  • 生命在于学习——Python人工智能原理(4.7)
  • 经典游戏案例:仿植物大战僵尸
  • [Day 18] 區塊鏈與人工智能的聯動應用:理論、技術與實踐