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 keepalived

global_defs {
   router_id master # 机器名(自定义)
}

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

备机填入配置

! Configuration File for keepalived
global_defs {
   router_id slave 
}

vrrp_instance VI_1 {
    state BACKUP 
    interface enp0s3
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_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 Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor                                                                                 preset: disabled)
   Active: active (running) since Wed 2024-06-26 09:40:21 EDT; 25min ago
  Process: 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 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:74:40:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.100/24 brd 192.168.0.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.0.145/32 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::ea55:5c05:1f91:3173/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

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

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值