Keepalived +VIP(虚拟IP) 漂移 部署系统高可用 离线部署|故障转移

目前需要做一个项目需要高可用    项目采用Keepalived+VIP(虚拟IP)进行一个故障转移。Keepalived和VIP的相关知识就不在这里废话介绍了  介绍一下当前的高可用环境实现思路。

目前有三台服务器。分别为三台服务器上部署keepalived 进行故障转移,当用户访问虚拟IP时,其keepalived会判断其优先级,主要根据监控的相关的服务端口  如

nginx 监听的端口 80

数据库服务端口  3306 

php-fpm的9000端口   

将优先级的进行虚拟IP(VIP)的地址漂移。使用ip a 可以查看到其绑定的虚拟IP在哪一台服务器上,或通过相关日志进行查看。

服务器相关IP配置

资源IP 
服务器1192.168.1.101
服务器1192.168.1.102
服务器1192.168.1.103

步骤一    先从部署或交付那边拿到配置好的虚拟IP    如:192.168.1.86   

步骤二   启动关键的端口服务  如  ngngx php-fpm  mysql    使用lsof -i:80   命令进行查看

步骤三  修改或新增一个keepalived的配置   如  keepalived.conf

下面贴出我的配置文件   

! Configuration File for keepalived

global_defs {
   notification_email {
	yuluolishang@qq.com	
   }
   notification_email_from yuluolishang@yisa.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   script_user root
   enable_script_security
   vrrp_skip_check_adv_addr
   #vrrp_strict
   #vrrp_iptables
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_mysql_port {
       script "</dev/tcp/127.0.0.1/3306" # connects and exits
       interval 1                      # check every second
       weight -20                       # default priority: -20 if connect fails
}

vrrp_script chk_php_port {
       script "</dev/tcp/127.0.0.1/9000" # connects and exits
       interval 1                      # check every second
       weight -20                       # default priority: -20 if connect fails
}

vrrp_script chk_nginx_port {
       script "</dev/tcp/127.0.0.1/80" # connects and exits
       interval 1                      # check every second
       weight -20                       # default priority: -20 if connect fails
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 66
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass Feipeng$
    }
    unicast_src_ip 192.168.1.101
    unicast_peer {
        192.168.1.102
        192.168.1.103
    }
    virtual_ipaddress {
        192.168.1.86/22
    }
    track_script {
       chk_mysql_port
       chk_php_port
       chk_nginx_port
    }
   
}

配置相关说明  :

state BACKUP   三台服务器都被BACKUP 角色

interface   etho   这个为该服务器的网卡名称

virtual_router_id   虚拟路由  这个三台服务器为同一个  必须同一个

priority   100   优先级  三台服务器需一次填写100 99 98 

authentication  认证密码  三台服务器密码必须设置相同  否则故障转移不成功。

unicast_src_ip    广播地址   即本机IP地址  

unicast_peer  广播接收地址  即另外两台服务器的IP地址

virtual_ipaddress   虚拟IP(VIP)地址   后面的/22 代表子网掩码  一般与三台服务器的真实IP在同一网段中。

track_script   里面为各监控的端口脚本名称   一行写一个检测

步骤四   启动keepalived 进程   启动故障转移    本keepalived 为离线部署  离线包目录结构如下:

启动命令   /keepalived/sbin/keepalived -f /keepalived/etc/keepalived/keepalived.conf  

/keepalived/sbin/keepalived -f /keepalived/etc/keepalived/keepalived.conf  

步骤五   验证启动    

查看keepalived 进程是否有启动   输入 ps aux|grep keepalived

ps aux|grep keepalived

会输出如下:

ps aux|grep keepalived
root     182037  0.0  0.0  44096   888 ?        Ss   17:13   0:00 /keepalived/sbin/keepalived  -f /keepalive/etc/keepalived/keepalived.conf
root     182038  0.1  0.0  44096  1308 ?        S    17:13   0:00 /keepalived/sbin/keepalived  -f /keepalive/etc/keepalived/keepalived.conf
root     182343  0.0  0.0 112812   968 pts/0    S+   17:13   0:00 grep --color=auto keepalive

    输入ip a 查看当前漂移VIP 绑定情况

步骤六   模拟故障   比如说nginx 挂掉了   

输入命令   pkill nginx

然后输入lsof -i:80   此时可以得出  nginx 服务被停掉了  

pkill nginx
lsof -i:80

此时  刚才绑定的VIP的所在服务器上  此VIP不在其服务器了,而是跑到另一台服务器上绑定了VIP虚拟IP 

至此   keepalived 故障转移部署成功!!

坑:

1.同一组故障转移集群   virtual_router_id  虚拟路由IP 必须一样  要不然部署不成功。

2.interface   etho  网卡名称一定要填写当前服务器IP的所在网卡名称

3.若同一个局域网内,有多个keepalived 实例,keepalived两台机器同时出现vip问题!keepalived默认为广播,应改为单播

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高可用性是指系统或服务能够持续提供正常的服务,即使部分组件或节点出现故障VIP+Keepalived+HAProxy+SLB 是一种常见的高可用架构设计,下面我会简单介绍一下其实现原理和各个组件的作用。 1. VIP(Virtual IP):虚拟 IP 是一个不属于任何实际物理接口的 IP 地址,用于将外部请求定向到后端服务器集群。 2. KeepalivedKeepalived 是一个基于 VRRP(虚拟路由冗余协议)的软件,它可以管理 VIP,并确保在主节点故障时快速切换到备份节点。 3. HAProxy:HAProxy 是一种高性能的负载均衡器,它能够将外部请求分发到后端服务器上,并提供各种负载均衡算法和健康检查机制。 4. SLB(Server Load Balancer):SLB 是一种云服务,通常由云服务提供商提供,它也是一种负载均衡器,可以将外部请求分发到后端服务器集群上。 实现高可用的过程如下: 1. 部署多台服务器作为后端服务器集群,这些服务器可以运行相同的应用程序或服务。 2. 在服务器集群中配置 Keepalived,并为其分配一个 VIP 地址,用于接收外部请求。 3. Keepalived 通过 VRRP 协议与服务器集群中的所有节点通信,选择其中一台作为主节点,其余节点作为备份节点。 4. 主节点负责接收外部请求并将其传递给 HAProxy 或 SLB。 5. HAProxy 或 SLB 根据负载均衡算法将请求分发到后端服务器集群中的可用节点上。 6. 如果主节点出现故障Keepalived 会立即将 VIP 转移到备份节点,确保服务的连续性。 这种架构可以提供高可用性和负载均衡,并能够在出现故障时自动切换到备份节点,保证系统的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值