12 keepalived高可用+keepalived的部署

一.keepalived高可用(私网)

1.什么是高可用

一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。

2.什么是keepalived

部署在整个集群中的一个高可用软件,作用是创建一个VIP(虚拟IP),在整个集群中有且只有一个机器上生成VIP,当这台机器出现问题时,keepalived将自动将VIP切换至其他的某一台服务器上。



3.常用的工具
1.硬件通常使用 F5
2.软件通常使用 keepalived

4.keepalived涉及名词

keepalived软件是基于VRRP协议实现的,VRRP虚拟路由冗余协议,主要用于解决单点故障问题

ARP广播
VRRP协议
vip负责IP漂移
vmac负责通知ARP广播修改mac地址


5.高可用keepalived核心概念
1.如何确定谁是主节点谁是备节点(选举投票,优先级)
2.如果Master故障,Backup自动接管,那么Master恢复后会夺权吗(抢占试、非抢占式)
3.如果两台服务器都认为自己是Master会出现什么问题(脑裂)

 

 

6.keepalived的部署

实现VIP,解决web服务器的单点故障

 

 

1、服务器准备

主机ip身份
lb01 192.168.15.5 负载均衡
lb02 192.168.15.6 负载均衡
web01 192.168.15.7 web服务器
web02 192.168.15.8 web服务器
web03 192.168.15.9 web服务器

2、保证七层负载均衡完全一致

前提:保证七层负载均衡完全一致

    把lb01相关配置传到lb02

[root@lb01 ~]# cd /etc/nginx/conf.d
[root@lb01 conf.d]# ll
total 8
-rw-r--r-- 1 root root 440 Nov  1 19:52 game.conf
-rw-r--r-- 1 root root 212 Oct 31 22:21 pysession.conf

[root@lb01 conf.d]# scp game.conf 172.16.1.6:/etc/nginx/conf.d

   [root@lb01 conf.d]# scp ../nginx.conf 172.16.1.6:/etc/nginx/
   [root@lb01 conf.d]# scp ../proxy_params 172.16.1.6:/etc/nginx/
   [root@lb01 conf.d]# scp -r ../ssl_key 172.16.1.6:/etc/nginx/

​重启nginx
[root@lb02 conf.d]# nginx -t
[root@lb02 conf.d]# systemctl restart nginx

 

1)安装keepalived(lb01和lb02)

在所有的需要流量的机器上部署keepalived。           
yum install keepalived -y

2) 添加VIP配置


[root@lb01 ~]# vim /etc/keepalived/keepalived.conf
#全局配置
global_defs {
#身份识别(全局唯一)
  router_id lb01
}

# 配置VRRP协议
vrrp_instance VI_1 {
   # 状态,MASTER和BACKUP(这里仅仅是一个标记,正真确认VIP的是权重)
  state MASTER
   # 绑定网卡
  interface eth0
   # 虚拟路由标示,可以理解为分组
  virtual_router_id 50
   # 优先级(数字越大,权重越大)
  priority 100
   # 监测心跳间隔时间
  advert_int 1
   # 配置认证
  authentication {
   # 认证类型
  auth_type PASS
   # 认证的密码
  auth_pass 1111
  }
   # 设置VIP
  virtual_ipaddress {
   # 虚拟的VIP地址
   192.168.15.200
}
}

 


 


[root@lb02 ~]# vim /etc/keepalived/keepalived.conf
#全局配置
global_defs {
  #身份识别(全局唯一)
  router_id lb02
}

# 配置VRRP协议
vrrp_instance VI_1 {
  # 状态,MASTER和BACKUP(这里仅仅是一个标记,正真确认VIP的是权重)
  state BACKUP
  # 绑定网卡
  interface eth0
  # 虚拟路由标示,可以理解为分组
  virtual_router_id 50
  # 优先级(数字越大,权重越大)
  priority 90
  # 监测心跳间隔时间
  advert_int 1
  # 配置认证
  authentication {
  # 认证类型
  auth_type PASS
  # 认证的密码
  auth_pass 1111
  }
  # 设置VIP
  virtual_ipaddress {
  # 虚拟的VIP地址
  192.168.15.200
}
}

 


 

3)、web服务器

启动nginx:

 systemctl start nginx

 

4)修改Windows的hosts

 

 

5) 启动keepalived服务(lb01和lb02)
systemctl start keepalived

6)测试

 

 

7)访问https:game.test.com

 

 




关闭lb01的keepalived

 


 

 

 

 

 注意:

虚拟VIP无法在云服务器上使用,因为云服务器不支持虚拟IP。




posted @ 2021-11-02 19:11  甜甜de微笑  阅读(100)  评论(0编辑  收藏  举报