当前位置: 首页 > article >正文

Linux系统——keepalived安装与部署

一、keepalived的概念和核心功能

(1)keepalived是一个用于实现高可用和负载均衡的服务,主要基于虚拟路由协议,解决了nginx一台机器的单点故障问题

(2)高可用性:keepalived会通过健康检查机制定期检查nginx服务器,通过 VRRP 协议实现故障转移。当主服务器发生故障时,备用服务器会自动接管服务,确保服务不中断。

(3)负载均衡:支持基于传输层的负载均衡,可以将客户端请求分发到多个后端服务器,提高系统的处理能力和可靠性。

二、keepalived的安装与部署

(1)yum -y install keepalived:下载keepalived(主机和备机都需要下载)

(2)hostnamectl  set-hostname  keepalived-master:设置主机keepalived为keepalived-master

          su:跳转进入keepalived-master

(3)hostnamectl  set-hostname  keepalived-backup:设置备机keepalived为keeplived-backup

        su :跳转进入keepalived-backup

(4)cd  /etc/keepalived:跳转到keepalive的目录

        vim keepalived.conf:编辑keepalived配置文件

主机配置

! Configuration File for keepalived

global_defs {

#路由器id,是路由器唯一标识符,用于在日志中区分不同的Keepalived实例

 router_id LVS_DEVEL

}

#定义一个vrrp脚本,用于监控nginx服务

vrrp_script check_nginx_pid_restart {

    # 之前编写的nginx重启脚本的所在位置

 script "/bin/keepalived/check_nginx_pid_restart.sh"

    # 每间隔3秒执行一次

 interval 3

    # 如果脚本中的条件成立,重启一次则权重-20,即则降低优先级20分

 weight -20

}

#定义一个名为VI_1的实例

vrrp_instance VI_1 {

      state MASTER #设置此实例为主服务器状态(备机应设置为BACKUP)

      interface ens33 #监听的网卡为ens33

      virtual_router_id 121 #虚拟路由器ID,主备机必须相同

      priority 100 # 优先级,数值越大优先级越高,主服务器应高于备服务器

      advert_int 1 # VRRP通告间隔时间(秒)

      authentication { # 认证信息,确保只有授权的节点可以加入VRRP组

         auth_type PASS # 使用简单密码认证

         auth_pass 1111 # 认证密码,主备机需一致

    }

track_script {

 # 执行Nginx监控的脚本

 check_nginx_pid_restart

}

    virtual_ipaddress {

      192.168.186.100 #虚拟ip,需要与主机和备机在同一网域,但IP不能相同

    }

}

备机配置

! Configuration File for keepalived

global_defs {

   router_id LVS_DEVEL

}

 vrrp_script check_nginx_pid_restart {

    # 之前编写的nginx重启脚本的所在位置

 script "/bin/keepalived/check_nginx_pid_restart.sh"

    # 每间隔3秒执行一次

 interval 3

    # 如果脚本中的条件成立,重启一次则权重-20

 weight -20

}

vrrp_instance VI_1 {

    state BACKUP

    interface ens33

    virtual_router_id 121

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

}

track_script {

 # 执行Nginx监控的脚本

 check_nginx_pid_restart

}

    virtual_ipaddress {

       192.168.186.100

    }

}

(5)mkdir keepalived :跳转到/bin目录,然后创建一个keepalived目录

        vim check_nginx_pid_restart.sh:编辑脚本文件

        chmod  +x  check_nginx_pid_restart.sh:给脚本赋予执行权限

脚本内容

#!/bin/bash

# 使用 systemctl 检查 Nginx 服务的状态,并通过 grep 查找 "active (running)" 字样

# 如果找到该字样,表示 Nginx 正在运行,grep 返回状态码为 0;否则返回非零状态码

systemctl status nginx | grep "active (running)" > /dev/null

# 检查上一条命令的退出状态码($?),如果状态码不等于 0,表示 Nginx 不是 "active (running)"

if [ $? -ne 0 ]; then

# 尝试重启 Nginx 服务并将输出重定向到 /dev/null 以避免输出到控制台

    systemctl restart nginx &> /dev/null

sleep 1

# 再次检查 Nginx 服务的状态

systemctl status nginx | grep "active (running)" > /dev/null

# 如果 Nginx 仍然不是 "active (running)",则停止 Keepalived 服务

if [ $? -ne 0 ]; then

      systemctl stop keepalived

    else

      Exit # 如果 Nginx 已经成功启动,则直接退出脚

  fi

fi

(6)kdir -p /bin/keepalived :递归创建文件夹

        scp check_nginx_pid_restart.sh root@192.168.186.180:/root #将脚本文件远程复制到备机的/root目录下

        mv check_nginx_pid_restart.sh /bin/keepalived :将脚本文件移动到keepalived目录下

        chomd +x check_nginx_pid_restart.sh :给脚本文件赋权

(7)systemctl start keepalived :在主机和备机上同时将keepalived开启

        ip a :查询是否开启

        如果出现虚拟ip则成功

(8)pkill -9 nginx:将主机nginx进程杀死

        netstat -antp:查看端口是否关闭

        systemctl  stop nginx

         #将主机上nginx关闭测试备机是否能启用nginx

        systemctl status nginx:测试nginx是否关闭       

         #如果nginx关闭不了将主机nginx直接将其卸载

         yum -y remove nginx

(9)在备机输入ip a查看nginx是否启用,如果查到虚拟ip则备机nginx已经启用

       


http://www.kler.cn/a/595346.html

相关文章:

  • Eplan许可分析
  • 嵌入式芯片与系统设计竞赛,值得参加吗?如何选题?需要学什么?怎么准备?
  • 智能照明与新能源集成的精细化能效管理实践
  • 2020年全国职业院校技能大赛改革试点赛高职组“云计算”竞赛赛卷
  • 性能优化中如何“避免链接关键请求”
  • 招聘面试季--一文顿悟,Java中字节流和字符流的区别及使用场景上的差异
  • 5G 智慧杆塔:开启智能城市新未来
  • JAVA————十五万字汇总
  • 嵌入式硬件工程师从小白到入门-PCB绘制(二)
  • 让bnpy 在 Windows 上飞起来:跨平台改造
  • 『 C++ 』多线程编程中的参数传递技巧
  • ragflow 默认端口被占用,更改端口号
  • 前端开发:Vue以及Vue的路由
  • 基于javaweb的SSM+Maven宠物领养宠物商城流浪动物管理系统与实现(源码+文档+部署讲解)
  • 【机器学习】建模流程
  • 索引的前导列
  • 【MySQL】第十五弹---全面解析事务:定义、起源、版本支持与提交方式
  • 智能体开发革命:灵燕平台如何重塑企业AI应用生态
  • OBOO鸥柏丨多媒体信息发布系统立式触摸屏一体机国产化升级上市
  • 智能施工方案生成工具开发实践:从架构设计到核心实现