* 在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_group4  224.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[4258]: VRRP_Instance(VI_1) sending 0 priority 发送优先级为0的报文;

    May 10 05:25:01 localhost Keepalived_vrrp[4258]: VRRP_Instance(VI_1) removing protocol VIPs. 移除VIP的协议

    May 10 05:25:01 localhost Keepalived_healthcheckers[4257]: 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[3881]: VRRP_Instance(VI_1) Transition to MASTER STATE 称为主用服务器

    May 9 08:09:22 localhost Keepalived_vrrp[3881]: VRRP_Instance(VI_1) Entering MASTER STATE 确认主用状态

    May 9 08:09:22 localhost Keepalived_vrrp[3881]: VRRP_Instance(VI_1) setting protocol VIPs. 设置

    May 9 08:09:22 localhost Keepalived_vrrp[3881]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eno16777736 for 172.18.11.66 发送免费ARP报文

    May 9 08:09:22 localhost Keepalived_healthcheckers[3880]: Netlink reflector reports IP 172.18.11.66 added 获得VIP地址

    May 9 08:09:27 localhost Keepalived_vrrp[3881]: 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

    ```