安装高可用

  • keepalived介绍: 是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障

  • Keepalived作用: 为haproxy提供vip(192.168.1.100)在三个haproxy实例之间提供主备,降低当其中一个haproxy失效的时对服务的影响。

安装

yum install -y keepalived

配置

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

# 主要是配置故障发生时的通知对象以及机器标识。
global_defs {
   # 标识本节点的字条串,通常为 hostname,但不一定非得是 hostname。故障发生时,邮件通知会用到。
   router_id LVS_k8s
}

# 用来做健康检查的,当时检查失败时会将 vrrp_instance 的 priority 减少相应的值。
vrrp_script check_haproxy {
    script "killall -0 haproxy"   # check process status
    interval 3
    weight -2
    fall 10
    rise 2
}

# rp_instance用来定义对外提供服务的 VIP 区域及其相关属性。
vrrp_instance VI_1 {
    state MASTER   #Current is MASTER,Other BACKUP
    interface eth0 # Local Host Enternet
    virtual_router_id 51
    priority 250
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 35f18asjh3kksf7190d51c9f7f78f37300a0cbd
    }
    virtual_ipaddress {
        192.168.1.100   # VIP
    }
    track_script {
        check_haproxy
    }

}

当前节点的配置中 state 配置为 MASTER,master-02节点设置为 BACKUP

  • 配置概述

    • virtual_ipaddress: vip

    • track_script: 执行上面定义好的检测的script

    • interface: 节点固有IP(非VIP)的网卡,用来发VRRP包。

    • virtual_router_id: 取值在0-255之间,用来区分多个instance的VRRP组播

    • advert_int: 发VRRP包的时间间隔,即多久进行一次master选举(可以认为是健康查检时间间隔)。

    • authentication: 认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)。

    • state: 可以是MASTER或BACKUP,不过当其他节点keepalived启动时会将priority比较大的节点选举为MASTER,因此该项其实没有实质用途。

    • priority: 用来选举master的,要成为master,那么这个选项的值最好高于其他机器50个点,该项取值范围是1-255(在此范围之外会被识别成默认值100)

启动

# 开机启动
systemctl enable keepalived
# 启动keepalived
systemctl start keepalived
# 查看状态
systemctl status keepalived

查看网络状态

kepplived 配置中 state 为 MASTER 的节点启动后,查看网络状态,可以看到虚拟IP已经加入到绑定的网卡中

ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether de:28:f4:1d:ac:b4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.101/22 brd 192.168.3.255 scope global noprefixroute dynamic eth0
       valid_lft 61647sec preferred_lft 61647sec
    inet 192.168.1.100/22 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::dc28:f4ff:fe1d:acb4/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

当关掉当前节点的keeplived服务后将进行虚拟IP转移,将会推选state 为 BACKUP 的节点的某一节点为新的MASTER,可以在那台节点上查看网卡,将会查看到虚拟IP

Last updated