keepalived 高可用集群简单搭建

1.keepalived概念

keepalived是一款高可用集群软件,keepalived功能:心跳检测和故障切换。

心跳检测:master主机会向从节点广播心跳信息,当从节点收不到master节点的心跳信息时,会进行vip的漂移。

故障切换:master节点宕机之后,vip会漂移到备用节点上,备用节点上的应用会去接管外部访问。当客户端输入vip进行访问时,时备用节点上的应用进行应答。

 VRRP协议:(虚拟路由冗余协议)是一种容错协议,保障主机路由出现故障的时候,可以是使用另一台路由来代替这台路由进行工作。

2.keepalived的安装

注意:

书写格式的{}配对问题也许注意

关闭防火墙和selinux

两种方式安装keepalived:yum安装 源码安装(源码安装较为复杂)

yum安装:

1.安装cheese
yum install http://www.nosuchhost.net/~cheese/fedora/packages/epel-7/x86_64/cheese-release-7-1.noarch.rpm
2.yum安装keepalived
yum install -y keepalived

keepalived的配置文件:

keepalived的配置文件:

/etc/keepalived/keepalived.conf

keepalived中的部分参数:

第一部分:全局配置(可以在此处配置邮箱)

扫描二维码关注公众号,回复: 16277093 查看本文章
 ! Configuration File for keepalived

 global_defs {
 notification_email {
 [email protected]
 [email protected]
 [email protected]
 }
 notification_email_from [email protected]
 smtp_server 192.168.200.1
 smtp_connect_timeout 30
 router_id LVS_DEVEL         主机上的router_id 需要唯一
#vrrp_skip_check_adv_addr    以下几行进行注释
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0

 }

第二部分:实例配置(在一个实例中主机的virtual_router_id一样)

vrrp_instance VI_1 {
state MASTER         代表主机节点时主还是备
interface eth0
virtual_router_id 51    同一个实列需要virtual_router_id 为同一个
priority 100            master主机的优先级需要高于backup主机的优先级  
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16         指定虚拟vip的地址(地址需要不被任何主机使用)
192.168.200.17
192.168.200.18
}
}

第三部分:real-server配置

virtual_server 192.168.200.100 443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
real_server 192.168.201.100 443 {
    weight 1
    SSL_GET {
    url {
    path /
    digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
    url {
    path /mrtg/
    digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
retry 3
delay_before_retry 3
}
}

抢占模式:

keepalived默认是抢占模式,工作环境中使用的时不抢占模式,这样环境较为稳定。

3.单实例主备模式的keepalived配置

master:192.168.27.120

backup:192.168.27.122

master节点配置

192.168.27.120

[root@localhost ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
    notification_email {
    [email protected]
    [email protected]
    [email protected]
}
    notification_email_from [email protected]
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL1
}
vrrp_instance VI_1 {
    state MASTER        主节点
    interface ens33    自己本机的网卡
    virtual_router_id 51    一个实例中一样
    priority 100            优先级大于备节点
    advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.27.135        vip设置
}
}

 backup节点配置:

192.168.27.122

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
    [email protected]
    [email protected]
    [email protected]
}
    notification_email_from [email protected]
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL2    从主机的id
}
vrrp_instance VI_1 {
    state BACKUP            从节点
    interface ens33         自己的网卡设备
    virtual_router_id 51    和主节点一个实例,其的实例id一样
    priority 80             优先级小于主节点
    advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.27.135          同一个实例中的VIP一致
}

重启:

systemctl start keepalived.service (先启动主节点在启动备节点)

单实例配置主备模式

(三台机器,两台置keepalived和httpd,另一台为客户端)

keepalived的配置和之前一样,在这两台主机上配置安装httpd服务,客户端进行测试。

客户端测试使用定义的vip测试
curl ip
当主机点宕机后看是否会切换另一个节点的应用服务器应答

在节点添加实例2即可:

master节点

vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 52
    priority 80
    advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.27.136
}
}


backup节点:
vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 52
    priority 100
    advert_int 1
authentication {
    auth_type PASS
    auth_pass 1111
}
virtual_ipaddress {
    192.168.27.136
}
}

猜你喜欢

转载自blog.csdn.net/weixin_62173637/article/details/132333453