• CentOS 7 搭建 Keepalived+LVS NAT模式 高可用集群


    环境

    主机IP及网卡
    lvs调度器(DS1)桥接:192.168.1.101(ens37)         NAT:1921.68.2.109(ens33)
    lvs调度器(DS2)桥接:192.168.1.100(ens37)         NAT:1921.68.2.110(ens33)
    web服务器(RS1)192.168.2.111(ens33)
    web服务器(RS2)192.168.2.112(ens33)
    VIP192.168.1.200  ens37
    DIP192.168.2.150  ens33

     注意:因为 keepalived 可以配置 VIP,所以 lvs 不用配置 ipvsadm -A ******,ipvsadm -a ****

    拓扑

    虚拟机创建及 LVS 集群 NAT 模式搭建 

    CentOS 7 搭建 LVS集群 NAT模式_tom马的博客-CSDN博客

    安装 keepalived(2台都要安装)

    yum install keepalived -y

    一、lvs调度器1        192.168.1.101

    1、Master 配置

    1. vim /etc/keepalived/keepalived.conf
    2. # master
    3. global_defs {
    4. router_id lvs-keepalived
    5. }
    6. vrrp_instance VI_1 {
    7. state MASTER
    8. interface ens37
    9. virtual_router_id 51
    10. priority 100
    11. advert_int 1
    12. authentication {
    13. auth_type PASS
    14. auth_pass 1111
    15. }
    16. virtual_ipaddress {
    17. 192.168.1.200/24 # 配置 VIP
    18. }
    19. }
    20. vrrp_instance VI_2 {
    21. state MASTER
    22. interface ens33
    23. virtual_router_id 52
    24. priority 100
    25. advert_int 1
    26. authentication {
    27. auth_type PASS
    28. auth_pass 1111
    29. }
    30. virtual_ipaddress {
    31. 192.168.2.150/24 # 配置 DIP
    32. }
    33. }
    34. virtual_server 192.168.1.200 80 {
    35. delay_loop 6
    36. lb_algo rr
    37. lb_kind NAT
    38. protocol TCP
    39. real_server 192.168.2.111 80 {
    40. weight 1
    41. TCP_CHECK {
    42. connect_timeout 3
    43. connect_port 80
    44. }
    45. }
    46. real_server 192.168.2.112 80 {
    47. weight 1
    48. TCP_CHECK {
    49. connect_timeout 3
    50. connect_port 80
    51. }
    52. }
    53. }

    2、启动

    systemctl start keepalived

    3、查看IP

    因为这台是master,所以现在可以看到 ens37 和 ens33 上面分别了多出了一个IP,对应 VIP 和 DIP

    [root@kvm109 ~]# ip a
    1: lo: 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: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:a1:5b:59 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.109/24 brd 192.168.2.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet 192.168.2.150/24 scope global secondary ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::6963:2857:478c:ecd4/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: ens37: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:a1:5b:63 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.101/24 brd 192.168.1.255 scope global noprefixroute ens37
           valid_lft forever preferred_lft forever
        inet 192.168.1.200/24 scope global secondary ens37
           valid_lft forever preferred_lft forever
        inet6 fe80::ae1c:36e0:2072:3c3c/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever 

    4、查看 ipvs

    1. [root@kvm109 ~]# ipvsadm -ln
    2. IP Virtual Server version 1.2.1 (size=4096)
    3. Prot LocalAddress:Port Scheduler Flags
    4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    5. TCP 192.168.1.200:80 rr
    6. -> 192.168.2.111:80 Masq 1 0 0
    7. -> 192.168.2.112:80 Masq 1 0 0
    8. TCP 192.168.2.109:80 rr
    9. -> 192.168.2.111:80 Masq 1 0 0
    10. -> 192.168.2.112:80 Masq 1 0 0

     二、调度器2        192.168.1.100

    1、Backup 配置

    1. vim /etc/keepalived/keepalived.conf
    2. # Backup
    3. global_defs {
    4. router_id lvs-keepalived
    5. }
    6. vrrp_instance VI_1 {
    7. state BACKUP
    8. interface ens37
    9. virtual_router_id 51
    10. priority 90
    11. advert_int 1
    12. authentication {
    13. auth_type PASS
    14. auth_pass 1111
    15. }
    16. virtual_ipaddress {
    17. 192.168.1.200/24
    18. }
    19. }
    20. vrrp_instance VI_2 {
    21. state BACKUP
    22. interface ens33
    23. virtual_router_id 52
    24. priority 90
    25. advert_int 1
    26. authentication {
    27. auth_type PASS
    28. auth_pass 1111
    29. }
    30. virtual_ipaddress {
    31. 192.168.2.150/24
    32. }
    33. }
    34. virtual_server 192.168.1.200 80 {
    35. delay_loop 6
    36. lb_algo rr
    37. lb_kind NAT
    38. protocol TCP
    39. real_server 192.168.2.111 80 {
    40. weight 1
    41. TCP_CHECK {
    42. connect_timeout 3
    43. connect_port 80
    44. }
    45. }
    46. real_server 192.168.2.112 80 {
    47. weight 1
    48. TCP_CHECK {
    49. connect_timeout 3
    50. connect_port 80
    51. }
    52. }
    53. }

    2、查看IP

    因为这台是 backup,只能看到自己的2张网卡信息,看不到 VIP 和 DIP

    1. [root@kvm110 ~]# ip a
    2. 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    4. inet 127.0.0.1/8 scope host lo
    5. valid_lft forever preferred_lft forever
    6. inet6 ::1/128 scope host
    7. valid_lft forever preferred_lft forever
    8. 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    9. link/ether 00:0c:29:fb:5a:a1 brd ff:ff:ff:ff:ff:ff
    10. inet 192.168.2.110/24 brd 192.168.2.255 scope global noprefixroute ens33
    11. valid_lft forever preferred_lft forever
    12. inet6 fe80::6963:2857:478c:ecd4/64 scope link tentative noprefixroute dadfailed
    13. valid_lft forever preferred_lft forever
    14. inet6 fe80::e701:4a84:c716:58b9/64 scope link noprefixroute
    15. valid_lft forever preferred_lft forever
    16. 3: ens37: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    17. link/ether 00:0c:29:fb:5a:ab brd ff:ff:ff:ff:ff:ff
    18. inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens37
    19. valid_lft forever preferred_lft forever
    20. inet6 fe80::a379:a4d:829a:6d0e/64 scope link noprefixroute
    21. valid_lft forever preferred_lft forever

    3、查看 ipvs

    1. [root@kvm110 ~]# ipvsadm
    2. IP Virtual Server version 1.2.1 (size=4096)
    3. Prot LocalAddress:Port Scheduler Flags
    4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    5. TCP 192.168.1.200:http rr
    6. -> 192.168.2.111:http Masq 1 0 0
    7. -> 192.168.2.112:http Masq 1 0 0
    8. TCP kvm110:http rr
    9. -> 192.168.2.111:http Masq 1 0 0
    10. -> 192.168.2.112:http Masq 1 0 0

     三、web 服务器(2台都要修改)

    1、修改网关

    1. vim /etc/sysconfig/network-scripts/ifcfg-ens33
    2. # 内容
    3. TYPE=Ethernet
    4. PROXY_METHOD=none
    5. BROWSER_ONLY=no
    6. BOOTPROTO=static
    7. DEFROUTE=yes
    8. IPV4_FAILURE_FATAL=no
    9. IPV6INIT=yes
    10. IPV6_AUTOCONF=yes
    11. IPV6_DEFROUTE=yes
    12. IPV6_FAILURE_FATAL=no
    13. IPV6_ADDR_GEN_MODE=stable-privacy
    14. NAME=ens33
    15. UUID=e92e4fb7-96ed-4623-90cb-f5f9461f7b67
    16. DEVICE=ens33
    17. ONBOOT=yes
    18. IPADDR=192.168.2.111
    19. NETMASK=255.255.255.0
    20. GATEWAY=192.168.2.150 # 指向 LVS 的 DIP
    21. DNS1=8.8.8.8

    四、验证集群

    五、验证高可用 

    1、尝试关掉 DS1 服务器

    [root@kvm109 ~]# systemctl stop keepalived

    2、查看 DS1 服务器的 IP,VIP 和 DIP 不见了

    1. [root@kvm109 ~]# ip a
    2. 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    3. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    4. inet 127.0.0.1/8 scope host lo
    5. valid_lft forever preferred_lft forever
    6. inet6 ::1/128 scope host
    7. valid_lft forever preferred_lft forever
    8. 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    9. link/ether 00:0c:29:a1:5b:59 brd ff:ff:ff:ff:ff:ff
    10. inet 192.168.2.109/24 brd 192.168.2.255 scope global noprefixroute ens33
    11. valid_lft forever preferred_lft forever
    12. inet6 fe80::6963:2857:478c:ecd4/64 scope link noprefixroute
    13. valid_lft forever preferred_lft forever
    14. 3: ens37: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    15. link/ether 00:0c:29:a1:5b:63 brd ff:ff:ff:ff:ff:ff
    16. inet 192.168.1.101/24 brd 192.168.1.255 scope global noprefixroute ens37
    17. valid_lft forever preferred_lft forever
    18. inet6 fe80::ae1c:36e0:2072:3c3c/64 scope link noprefixroute
    19. valid_lft forever preferred_lft forever

    3、此时查看 DS2 服务器的 IP,发现 VIP 和 DIP 漂移过来了

    [root@kvm110 ~]# ip a
    1: lo: 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: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:fb:5a:a1 brd ff:ff:ff:ff:ff:ff
        inet 192.168.2.110/24 brd 192.168.2.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet 192.168.2.150/24 scope global secondary ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::6963:2857:478c:ecd4/64 scope link tentative noprefixroute dadfailed 
           valid_lft forever preferred_lft forever
        inet6 fe80::e701:4a84:c716:58b9/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    3: ens37: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:fb:5a:ab brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens37
           valid_lft forever preferred_lft forever
        inet 192.168.1.200/24 scope global secondary ens37
           valid_lft forever preferred_lft forever
        inet6 fe80::a379:a4d:829a:6d0e/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
     

    3、这时再次访问集群

  • 相关阅读:
    【C++】超详细typedef用法和实例,看完不信你不会
    基于springboot实现致远汽车租赁平台管理系统项目【项目源码+论文说明】
    Unity之UI、模型跟随鼠标移动(自适应屏幕分辨率、锚点、pivot中心点)
    Vue+NodeJS上传图片到腾讯云Cos
    VCS(DVE)仿真波形的存储和打开.vpd
    微信小程序自定义组件及会议管理与个人中心界面搭建
    zabbix监控告警邮箱提醒,钉钉提醒
    MeteoInfo-Java解析与绘图教程(八)_java解析卫星FY-4A一级产品文件(HDF举例)
    Bio-Helix丨Bio-Helix艾美捷100bp DNA ladder说明书
    自动化工具Selenium IDE基本使用——脚本编辑
  • 原文地址:https://blog.csdn.net/mshxuyi/article/details/126316115