• LVS+Keepalived群集


    Keepalive案例分析

    • 企业应用中,单台服务器承担应用存在单点故障的危险
    • 单点故障一旦发生,企业服务将发生中断,造成极大的危害

    Keepalived工具介绍

    • 专为LVS和HA设计的一款健康检查工具
      • 支持故障自动切换(Failover)
      • 支持节点健康状态检查(Health Checking)
      • 官方网站:http://www/keepalived.org/
    Keepalived实现原理刨析

    Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

    Keepalived案例讲解

    Keepalived可实现多机热备,每个热备组可有多台服务器

    • 双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器
    • 实现基于Web服务的双机热备
      • 漂移地址:192.168.10.72
      • 主、备服务器:192.168.10.73、192.168.10.74
    • 提供的应用服务:Web

    Keepalived概述及安装

    keepalived热备份方式

    CentOS7.9

    192.168.10.101/24

    web服务器

    CentOS7.9

    192.168.10.102/24

    web服务器

    keepaliveda安装与服务控制,同步101,102主机,关闭防火墙,安装应用软件
    1. [root@localhost ~]# systemctl stop firewalld
    2. [root@localhost ~]# setenforce 0
    3. [root@localhost ~]# yum -y install keepalived ipvsadm
    使用keepallived实现双机热备

    主服务器的配置,同步101、102配置,配置完成后,删除多余的内容,修改102配置文件的参数

    1. [root@localhost ~]# cd /etc/keepalived/
    2. [root@localhost keepalived]# ls
    3. [root@localhost keepalived]# cp keepalived.conf keepalived.bak
    4. [root@localhost keepalived]# vim keepalived.conf
    5. 101
    6. router_id LVS_01
    7. #vrrp_strict
    8. interface ens33
    9. virtual_ipaddress {
    10. 192.168.10.172
    11. }
    12. 删除以下多的行,123行,
    13. 102
    14. router_id LVS_02
    15. #vrrp_strict
    16. interface ens33
    17. priority 90
    18. #修改优先级
    19. state BACKUP #修改角色
    20. virtual_ipaddress {
    21. 192.168.10.172
    22. }
    修改成为保存退出,重启101、102主机的keepalived的服务
    [root@localhost keepalived]# systemctl start keepalived
    如果101被挂起,IP地址会漂移到102上,101重新运行起来,IP地址不会回到101上还是在102上面
    1. 101主机没挂起前
    2. [root@localhost keepalived]# ifconfig
    3. [root@localhost keepalived]# ip a
    4. inet 192.168.10.172/32 scope global ens33
    5. valid_lft forever preferred_lft forever
    6. 102主机
    7. 101主机挂起后IP地址漂移到102主机上,101主机重写启动IP地址漂移不回去
    8. inet 192.168.10.172/32 scope global ens33
    9. valid_lft forever preferred_lft forever
    来到101、102主机重启keepalived的服务
    1. 101
    2. [root@localhost ~]# vim /etc/keepalived/keepalived.conf
    3. #vrrp_strict #注释该节点
    4. [root@localhost ~]# systemctl restart keepalived
    5. 102
    6. [root@localhost ~]# vim /etc/keepalived/keepalived.conf
    7. #vrrp_strict #注释该节点
    8. [root@localhost ~]# systemctl restart keepalived
    来到103主机测试,如果101主机被挂起,访问得到的内容就是102主机的内容
    1. [root@localhost ~]# ping 192.168.10.172
    2. [root@localhost ~]# curl 192.168.10.172
    3. web01
    4. [root@localhost ~]# curl 192.168.10.172
    5. web02

    配置主调度器

    CentOS7.9

    192.168.10.105/24

    客户端

    CentOS7.9

    192.168.10.101/24

    主调度器

    CentOS7.9

    192.168.10.102/24

    从调度器

    CentOS7.9

    192.168.10.103/24

    web服务器

    CentOS7.9

    192.168.10.104/24

    web服务器

    主服务器keepalived的安装,连接同步101、102、103、104

    关闭防火墙、停止运行NetworkManager服务

    1. [root@localhost ~]# systemctl stop firewalld
    2. [root@localhost ~]# setenforce 0
    3. [root@localhost ~]# systemctl stop NetworkManager
    同步连接101、102会话
    1. [root@localhost ~]# yum -y install keepalived ipvsadm
    2. [root@localhost ~]# cd /etc/keepalived/
    3. [root@localhost keepalived]# cp keepalived.conf keepalived.bak

    主从服务器keepalived的配置

    1. [root@localhost keepalived]# vim keepalived.conf
    2. 101
    3. router_id LVS_01
    4. #vrrp_strict
    5. interface ens33
    6. virtual_ipaddress {
    7. 192.168.10.172 #修改虚拟IP地址
    8. }
    9. virtual_server 192.168.10.172 80 {
    10. delay_loop 6
    11. lb_algo rr
    12. lb_kind DR
    13. #persistence_timeout 50
    14. protocol TCP
    15. real_server 192.168.10.103 80 {
    16. weight 1
    17. TCP_CHECK {
    18. connect_port 80
    19. connect_timeout 3
    20. nb_get_retry 3
    21. delay_before_retry 3
    22. }
    23. }
    24. real_server 192.168.10.104 80 {
    25. weight 1
    26. TCP_CHECK {
    27. connect_port 80
    28. connect_timeout 3
    29. nb_get_retry 3
    30. delay_before_retry 3
    31. }
    32. }
    33. }
    34. 删除以下剩下的内容
    35. 直接复制101编辑好的内容
    36. 102
    37. virtual_server 192.168.10.172 80 {
    38. delay_loop 6
    39. lb_algo rr
    40. lb_kind DR
    41. #persistence_timeout 50
    42. protocol TCP
    43. real_server 192.168.10.103 80 {
    44. weight 1
    45. TCP_CHECK {
    46. connect_port 80
    47. connect_timeout 3
    48. nb_get_retry 3
    49. delay_before_retry 3
    50. }
    51. }
    52. real_server 192.168.10.104 80 {
    53. weight 1
    54. TCP_CHECK {
    55. connect_port 80
    56. connect_timeout 3
    57. nb_get_retry 3
    58. delay_before_retry 3
    59. }
    60. }
    61. }
    主服务器内核参数配置
    1. [root@localhost keepalived]# vim /etc/sysctl.conf
    2. net.ipv4.conf.all.send_redirects =0
    3. net.ipv4.conf.default.send_redirects= 0
    4. net.ipv4.conf.ens33.send_redirects= 0
    5. [root@localhost keepalived]# sysctl -p
    在101、102上面分别操作服务器池配置
    1. [root@localhost ~]# systemctl stop firewalld
    2. [root@localhost ~]# setenforce 0

  • 相关阅读:
    【快应用】快应用审核驳回常见原因总结
    给定一个整数数组 nums 和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。
    多个Lib module打包合成一个Aar
    Spring学习中存在报错问题汇总
    基于Java+SpringBoot+Vue前后端分离库存管理系统设计和实现
    如何优化负载均衡?一文讲懂
    【数据结构初阶】二叉树——堆的应用(堆排序 + TOP-K问题)
    【arm扩容】docker load -i tar包 空间不足
    linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)
    java毕业设计——基于java+Java Swing+jsp的企业快信系统设计与实现(毕业论文+程序源码)——企业快信系统
  • 原文地址:https://blog.csdn.net/m0_70627741/article/details/140960095