小乔 发表于 2018-12-30 10:35:12

keepalived 主备模式(centos 7)

  * 在centos 7上:
  把做准备两台主机(直接yum 安装keepalived),先做时间同步:
  ```
  ]# ntpdate 172.18.0.1
  向时间服务器同步;
  ```
  

  * 创建自动计划任务,向时间服务器每5分钟同步一次时间
  ```
  ]# crontab -e
  */5 * * * * /usr/sbin/ntpdate 172.18.0.1 &> /dev/null
  指定每过5分钟向时间服务器同步同步一次
  ```
  

  * 安装keepalived
      ```
      ]# yum -y install keepalived
      ]# rpm -ql keepalived
      ]# cd /etc/keepalived/
      ]# cp keepalived.conf{,.bak}
      ```
  ```
  ]# vim /etc/keepalived/keepalived.conf
  ----------------------------------------------------------------------------------------------------
  :set nohlsearch【去除vim脚本中的高亮,此处不解释】
  :.,$s/^/#/g【从当前行到最后一行,查找所有的行首加上# 号】
  ```
  

  

  * 先只配置全局段和虚拟路由实例段,其它都注释;
      ```
  ]# vim /etc/keepalived/keepalived.conf
  ----------------------------------------------------------------------------------------------------------------------------------
      global_defs {       【全局配置段】
        notification_email {【 此处填写接收通告邮件的地址,收件人】
              root@localhost【此处演示填写自己的】
        }
        notification_email_from kaadmin@magedu.com 【发件人】
        smtp_server 127.0.0.1 【配置邮件服务器,要求能在互联网上正反解析;】
        smtp_connect_timeout 30【邮件服务器的超时时长】
        router_id node1    【定义当前路由器设备的ID号,一般为主机名;】
        vrrp_mcast_group4224.0.11.18   【组播地址,默认为224.0.0.18,但是集群里的所有节点都有使用此地址;表示同一个组播域;】
      }
  

      vrrp_instance VI_1 { 虚拟路由器配置段,实例名称为VI_1,也可自定义;
        state MASTER【当前节点在此虚拟路由器中的初始状态;MASTER表示为主节点;】取值为:MASTER|BACKUP;
        interface eno16777736    【表示vrrp发送通告的接口;】
        virtual_router_id 11   【虚拟路由器ID,范围0-255;】
        priority 100   【当前物理节点在此虚拟路由器中的优先级;】
        advert_int 1    【表示vrrp的通告的时间间隔;为1秒;】
  

        authentication {    【认证方式】
              auth_type PASS    【使用简单密码认证】
              auth_pass vHFHLlTA   【随机字符串,可使用openssl rand -base64 8生成,因为最多只有8位字符有效;】
        }
  

        virtual_ipaddress { 定义虚拟IP,不指明则为前面的interface指明的接口地址;
                  #定义172.18.11.66 网卡别名地址,
        【可写为】 172.18.11.66 dev eno16777736 label eno16777736:0
        }
      }
  

  

      ]# scp keepalived.conf root@172.18.11.121:/etc/keepalived
        配置文件复制到另一调度器172.18.11.121上
  

        在172.18.11.121编辑该配置文件:
     ]# vim /etc/keepalived/keepalived.conf
  ---------------------------------------------------------------------------------
        修改:
      state BACKUP 修改为备用
      priority 50 修改小优先级;
        密码、router_id、vrrp_mcast_group4要保存一致;
  

        在两个调度器上开启keepalived服务:
      ]# systemctl start keepalived.service
      ]# systemctl status keepalived.service
      ]# systemctl -l status keepalived.service【-l 表示显示更多的信息】
  

  

        【分别查看两个调度器,VIP地址是否自动在主服务器的接口别名上:】
      ]# ip addr l
      ]# tail /var/log/messages
        手动使172.18.11.111主用服务器停止keepalived服务,再查看;
      ]# systemctl stop keepalived.service
  

        用另一终端查看日志信息不退出:
        显示部分内容:
      ]# tail -f /var/log/messages
      May 10 05:25:01 localhost systemd: Stopping LVS and VRRP High Availability Monitor...
      May 10 05:25:01 localhost Keepalived_vrrp: VRRP_Instance(VI_1) sending 0 priority 发送优先级为0的报文;
      May 10 05:25:01 localhost Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs. 移除VIP的协议
      May 10 05:25:01 localhost Keepalived_healthcheckers: Netlink reflector reports IP 172.18.11.66 removed 移除VIP
      May 10 05:25:01 localhost systemd: Stopped LVS and VRRP High Availability Monitor
  

        在另一调度器172.18.11.121上,查看日志:
        显示内容:
      ]# tail /var/log/messages
      May 9 08:09:21 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE 称为主用服务器
      May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE 确认主用状态
      May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs. 设置
      May 9 08:09:22 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eno16777736 for 172.18.11.66 发送免费ARP报文
      May 9 08:09:22 localhost Keepalived_healthcheckers: Netlink reflector reports IP 172.18.11.66 added 获得VIP地址
      May 9 08:09:27 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eno16777736 for 172.18.11.66
      May 9 08:10:01 localhost systemd: Started Session 58 of user root.
      May 9 08:10:01 localhost systemd: Starting Session 58 of user root.
      May 9 08:10:01 localhost systemd: Started Session 59 of user root.
      May 9 08:10:01 localhost systemd: Starting Session 59 of user root.
  

        再手动使172.18.11.111主用服务器上线:
      ]# systemctl start keepalived.service
        默认工作在抢占模式;优先级高的会自动成为主用服务器;
      这就是keepalived自动完成地址浮动;
  

        修改两个调度器的VIP别名:
      ]# vim /etc/keepalived/keepalived.conf
  --------------------------------------------------------------------------------
      virtual_ipaddress{
        172.18.11.66 dev eno16777736 label eno16777736:0
      }
  

        把两个调度器停止keepalived服务;
  

        先启动优先级低的服务器:172.18.11.121:
      ]# systemctl start keepalived.service
  

        此时使用ifconfig命令,engine查看网卡别名,已经自动加上了;
      ]# ifconfig
  

        再启动优先级高的服务器:172.18.11.111:
      ]# systemctl start keepalived.service
  

        此时使用ifconfig命令,engine查看网卡别名,已经自动抢占上了VIP地址;
      ]# ifconfig
  ```
  




页: [1]
查看完整版本: keepalived 主备模式(centos 7)