CentOS7下安装和运行Keepalived

简介

Keepalived是为实现服务的高可用(HA)而存在的,它的作用是检测Web服务器的状态,当主服务器down机或出现故障时,Keepalived会将主服务器的IP切换到其他运行正常的服务器,以达到服务的稳定。如今很多软件都会和他搭配使用,比如LVS,Nginx,Redis等。


原理

Keepalived是以VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议为实现基础的,这个协议可以认为是实现了路由器高可用的协议,将多台提供相同功能的路由器组成一个路由器组,这里面有一个MASTER和多个BACKUP,MASTER上面有一个对外提供服务的VIP,MASTER会发组播,当BACKUP收不到VRRP包时就认为MASTERdown机,这时需要根据VRRP优先级来选举一个BACKUP为MASTER,这样就保证路由器的正常使用了。


下载与安装(文章使用的是CentOS7x86-64-1611和Keepalived1.3.4)

访问Keepalived官网(http://www.keepalived.org)下载软件包,并上传到服务器上。

或者直接用命令下载并解压:

[root@localhost ~]# wget http://124.205.69.132/files/90630000053A2BB4/www.keepalived.org/software/keepalived-1.3.4.tar.gz
[root@localhost ~]# tar zxvf keepalived-1.3.4.tar.gz 

安装依赖插件:
[root@localhost ~]# yum install -y gcc openssl-devel popt-devel

编译安装:
[root@localhost ~]# cd keepalived-1.3.4
[root@localhost keepalived-1.3.4]# ./configure --prefix=/usr/local/keepalived
[root@localhost keepalived-1.3.4]# make && make install

配置:(后面部分会详细介绍,这里就用默认配置)

启动:
首先拷贝几个文件到CentOS7环境中:
[root@localhost ~]# cp keepalived-1.3.4/keepalived/etc/init.d/keepalived /etc/init.d/
[root@localhost ~]# mkdir /etc/keepalived
[root@localhost ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@localhost ~]# cp keepalived-1.3.4/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

执行启动服务:
  1. [root@localhost ~]# service keepalived start
  2. Starting keepalived (via systemctl): [ 确定 ]

查看服务启动情况,发现没有启动成功:
  1. [root@localhost ~]# ps -aux |grep keepalived
  2. root 16370 0.0 0.0 112664 936 pts/0 S+ 21:50 0:00 grep --color=auto keepalived

为什么呢?通过执行如下命令发现:
  1. [root@localhost ~]# journalctl -xe
  2. 6月 13 21:49:09 localhost.localdomain Keepalived[16356]: Unable to resolve default script username 'keepalived_script' - ignoring
  3. 6月 13 21:49:09 localhost.localdomain Keepalived[16356]: Opening file '/etc/keepalived/keepalived.conf'.
  4. 6月 13 21:49:09 localhost.localdomain systemd[1]: PID file /var/run/keepalived.pid not readable (yet?) after start.
  5. 6月 13 21:49:09 localhost.localdomain Keepalived[16357]: Starting Healthcheck child process, pid=16358
  6. 6月 13 21:49:09 localhost.localdomain Keepalived[16357]: Starting VRRP child process, pid=16359
  7. 6月 13 21:49:09 localhost.localdomain systemd[1]: Started LVS and VRRP High Availability Monitor.
  8. -- Subject: Unit keepalived.service has finished start-up
  9. -- Defined-By: systemd
  10. -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  11. --
  12. -- Unit keepalived.service has finished starting up.
  13. --
  14. -- The start-up result is done.
  15. 6月 13 21:49:09 localhost.localdomain polkitd[593]: Unregistered Authentication Agent for unix-process:16350:328706 (system bus name :1.44, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
  16. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Initializing ipvs
  17. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Netlink reflector reports IP 192.168.0.11 added
  18. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Netlink reflector reports IP fe80::20c:29ff:fee3:8c45 added
  19. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Registering Kernel netlink reflector
  20. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Registering Kernel netlink command channel
  21. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Registering gratuitous ARP shared channel
  22. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Opening file '/etc/keepalived/keepalived.conf'.
  23. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Cant find interface eth0 for vrrp_instance VI_1 !!!
  24. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Default interface eth0 does not exist and no interface specified. Skipping static address 192.168.200.16.
  25. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Default interface eth0 does not exist and no interface specified. Skipping static address 192.168.200.17.
  26. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: Default interface eth0 does not exist and no interface specified. Skipping static address 192.168.200.18.
  27. 6月 13 21:49:09 localhost.localdomain Keepalived_vrrp[16359]: (VI_1): No VIP specified; at least one is required
  28. 6月 13 21:49:09 localhost.localdomain kernel: IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
  29. 6月 13 21:49:09 localhost.localdomain kernel: IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
  30. 6月 13 21:49:09 localhost.localdomain kernel: IPVS: Creating netns size=2040 id=0
  31. 6月 13 21:49:09 localhost.localdomain kernel: IPVS: ipvs loaded.
  32. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Netlink reflector reports IP 192.168.0.11 added
  33. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Netlink reflector reports IP fe80::20c:29ff:fee3:8c45 added
  34. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Registering Kernel netlink reflector
  35. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Registering Kernel netlink command channel
  36. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Opening file '/etc/keepalived/keepalived.conf'.
  37. 6月 13 21:49:09 localhost.localdomain kernel: IPVS: [rr] scheduler registered.
  38. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Using LinkWatch kernel netlink reflector...
  39. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Activating healthchecker for service [192.168.201.100]:443
  40. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Activating healthchecker for service [192.168.200.2]:1358
  41. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Activating healthchecker for service [192.168.200.3]:1358
  42. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Activating healthchecker for service [192.168.200.4]:1358
  43. 6月 13 21:49:09 localhost.localdomain Keepalived_healthcheckers[16358]: Activating healthchecker for service [192.168.200.5]:1358
  44. 6月 13 21:49:10 localhost.localdomain kernel: IPVS: __ip_vs_del_service: enter
  45. 6月 13 21:49:10 localhost.localdomain kernel: IPVS: __ip_vs_del_service: enter
  46. 6月 13 21:49:10 localhost.localdomain kernel: IPVS: __ip_vs_del_service: enter
  47. 6月 13 21:49:10 localhost.localdomain Keepalived_vrrp[16359]: Stopped
  48. 6月 13 21:49:10 localhost.localdomain Keepalived[16357]: Keepalived_vrrp exited with permanent error CONFIG. Terminating
  49. 6月 13 21:49:10 localhost.localdomain Keepalived[16357]: Stopping
  50. 6月 13 21:49:10 localhost.localdomain Keepalived_healthcheckers[16358]: Removing service [192.168.201.100]:443 from VS [192.168.200.100]:443
  51. 6月 13 21:49:10 localhost.localdomain Keepalived_healthcheckers[16358]: Removing service [192.168.200.4]:1358 from VS [10.10.10.3]:1358
  52. 6月 13 21:49:10 localhost.localdomain Keepalived_healthcheckers[16358]: Removing service [192.168.200.5]:1358 from VS [10.10.10.3]:1358
  53. 6月 13 21:49:10 localhost.localdomain Keepalived_healthcheckers[16358]: Stopped
  54. 6月 13 21:49:15 localhost.localdomain Keepalived[16357]: Stopped Keepalived v1.3.4 (02/18,2017)

这是默认配置文件的配置情况和实际的环境不相符,需要修改配置文件的内容,只要配置正确是可以启动成功的,我下一篇文章会给出示例。

再说一下如何设置开机启动:
[root@localhost ~]# chkconfig keepalived on
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在CentOS 7上安装Keepalived的过程如下: 1. 首先,下载Keepalived的压缩包,并将其解压到指定目录。可使用以下命令进行解压: tar -zxf keepalived-2.0.20.tar.gz -C /app/ 2. 进入解压后的Keepalived目录,并进行编译和安装使用以下命令完成这一步骤: cd keepalived-2.0.20/ && ./configure --prefix=/app/keepalived make && make install 3. 安装完成后,需要将Keepalived安装为系统服务。这可以通过创建一个systemd服务单元来实现。可以按照以下步骤进行操作: a. 创建一个名为keepalived.service的文件,将以下内容复制到该文件中: ``` [Unit] Description=Keepalived After=syslog.target network.target [Service] Type=forking ExecStart=/app/keepalived/sbin/keepalived --dont-fork --log-console ExecReload=/bin/kill -HUP $MAINPID KillMode=process KillSignal=SIGTERM [Install] WantedBy=multi-user.target ``` b. 将该文件移动到系统服务目录中: mv keepalived.service /etc/systemd/system/ 4. 最后,启用并启动Keepalived服务。使用以下命令完成这一步骤: systemctl enable keepalived systemctl start keepalived 现在,Keepalived已经成功安装并以系统服务的形式运行在CentOS 7上了。请确保按照上述步骤进行操作,并替换相关路径和文件名为实际使用的路径和文件名。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [centos7 linux 安装 keeplived](https://blog.csdn.net/weixin_40816738/article/details/125258576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值