keepalived-高可用集群部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34646546/article/details/87931986


)

概念:高可用服务–keepalived

a 将多台服务从逻辑上捆绑成一台
b 可以提供一个虚拟的IP地址,供用户进行访问
c 实现自动主备切换

完成高可用集群部署

lb01 10.0.0.5 vip 10.0.0.3
lb02 10.0.0.6

lb服务器部署流程:

第一个历程:安装keepalived软件

yum install -y keepalived

keepalived配置文件编写方法

keepalived配置文件主要分为三个部分
GLOBAL CONFIGURATION — 全局配置
VRRPD CONFIGURATION — 高可用的配置
LVS CONFIGURATION — LVS配置部分(用来配置LVS)
LVS配置部分用不到 为了配置文件简单易懂 删除这个部分 (删除之前做好备份)

[root@lb01 ~]# cp /etc/keepalived/keepalived.conf{,.bak}
[root@lb01 ~]# ll /etc/keepalived/
total 8
-rw-r--r-- 1 root root 3598 Jan  6 16:47 keepalived.conf
-rw-r--r-- 1 root root 3598 Feb 26 10:30 keepalived.conf.bak
[root@lb01 ~]# vim /etc/keepalived/keepalived.conf
清除virtual_server 192.168.200.100 443 { 之后的内容
大概在36行
保存 退出
[root@lb01 ~]# cat -n /etc/keepalived/keepalived.conf
     1	! Configuration File for keepalived    实现通知告警功能
     2	
     3	global_defs {
     4	   notification_email {                邮件配置        
     5	     [email protected]              [email protected]
     6	     [email protected]             备用邮箱
     7	     [email protected]
     8	   }
     9	   notification_email_from [email protected]
    10	   smtp_server 192.168.200.1
    11	   smtp_connect_timeout 30             如果邮箱无法发送邮件 会在30s后换下一个邮箱
    12	   router_id LVS_DEVEL                 在一个高可用集群中不能重复  定义主机的名称 例: router_id lb01
    13	   vrrp_skip_check_adv_addr
    14	   vrrp_strict
    15	   vrrp_garp_interval 0
    16	   vrrp_gna_interval 0
    17	}
    18	
    19	vrrp_instance VI_1 {                   定义一个家族名称 叫VI_1 
    20	    state MASTER                       定义贮备信息注释(主MASTER 备BACKUP)
    21	    interface eth0                     指定VIP地址 在哪个网卡生成
    22	    virtual_router_id 51               优先级越高 越有可能成为主
    23	    priority 100                       家族标识 高可用集群每个节点必须一致
    24	    advert_int 1                       发送组播包间隔时间 单位s  (每秒一次 我还活着) 
    25	    authentication {                   认证信息 明文方式
    26	        auth_type PASS
    27	        auth_pass 1111
    28	    }
    29	    virtual_ipaddress {                定义一个虚IP地址
    30	        192.168.200.16
    31	        192.168.200.17
    32	        192.168.200.18
    33	    }
    34	}
    35	

第二个历程: keepalived服务配置

lb01-作为主服务器

lb01 配置信息

[root@lb01 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   router_id lb01
}

vrrp_instance aixinjueluo {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 12345
    }
    virtual_ipaddress {
        10.0.0.3
    }
}

lb02-作为备服务器

lb02 配置信息

[root@lb02 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   router_id lb02
}

vrrp_instance aixinjueluo {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 12345
    }
    virtual_ipaddress {
        10.0.0.3
    }
}

什么是vrrp协议(重点)

虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)
a 进行VRRP协议通讯
b 进行主备竞选
c 主服务器间断的发送组播包信息 224.0.0.18 vrrp协议
高可用集群工作原理图

企业实际配置高可用服务

第一个历程:确认lb01 lb02服务器上keepalived已经部署完毕

第二个历程:确保lb01 lb02都可以正常访问后端web节点

确认lb01 lb02负载均衡配置
[root@lb01 conf.d]# cat lb.conf
upstream oldboy {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
lb01 lb02
curl -H host:www.etiantian.org 10.0.0.7/oldboy.html
curl -H host:www.etiantian.org 10.0.0.8/oldboy.html
curl -H host:www.etiantian.org 10.0.0.9/oldboy.html

第三个历程: 模拟用户访问测试

配置hosts解析信息
10.0.0.3 www.etiantian.org bbs.etiantian.org

keepalived服务常见异常情况

脑裂问题:多个高可用集群节点都同时出现了vip地址信息

  1. 备主机上接收不到组播包(心跳线有问题了 物理原因(线缆) 逻辑原因(防火墙))
  2. 配置有问题(virtual_router_id 51)

解决方式:发送告警信息
利用脚本进行监控
lb02是否出现vip地址:
a 出现脑裂问题
b 主服务器挂了

猜你喜欢

转载自blog.csdn.net/qq_34646546/article/details/87931986