Keepalived 部署主备切换

Keepalived 部署主备切换

一个使用 Keepalived 部署主备切换服务的简单示例。

  1. 分别在主备服务器安装 keepalived: sudo yum install keepalived

  2. 备份 keepalived 原始配置文件: sudo mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

  3. 修改 keepalived 配置: sudo vim /etc/keepalived/keepalived.conf

    • 主服务器配置:

      global_defs {
          router_id MASTER_SERVER
      }
      
      vrrp_script check_service {
          script "/etc/keepalived/check_service.sh"
          interval 1
          fall 1
          rise 1
          weight -50
      }
      
      vrrp_instance VI_1 {
          state MASTER
          interface eth0
          virtual_router_id 51
          priority 100
          advert_int 1
      
          authentication {
              auth_type PASS
              auth_pass 2333
          }
      
          virtual_ipaddress {
              10.1.2.53  # VIP
          }
      
          track_script {
              check_service
          }
      }
      
      
    • 备服务器配置

      global_defs {
          router_id BACKUP_SERVER
      }
      
      vrrp_script check_service {
          script "/etc/keepalived/check_service.sh"
          interval 1
          fall 1
          rise 1
          weight -50
      }
      
      vrrp_instance VI_1 {
          state BACKUP
          interface eth0
          virtual_router_id 51
          priority 80
          advert_int 1
      
          authentication {
              auth_type PASS
              auth_pass 2333
          }
      
          virtual_ipaddress {
              10.1.2.53  # VIP
          }
      
          track_script {
              check_service
          }
      }
      
      
  4. 主备服务器都添加服务检查脚本: sudo vim /etc/keepalived/check_service.sh

    #!/bin/bash
    
    # 检查服务状态
    server_status=$(curl -s http://127.0.0.1/server_status/)
    if [[ "$server_status" =~ "running" ]];then
        exit 0
    else
        exit 1
    fi
    
    
  5. 添加执行检查脚本用户: sudo useradd -r -s /sbin/nologin keepalived_script

  6. 设置检查脚本权限:

    • sudo chown root:keepalived_script /etc/keepalived/check_service.sh
    • sudo chmod 750 /etc/keepalived/check_service.sh
  7. 启动 keepalived 服务: sudo systemctl start keepalived

  8. 检查 keepalived 服务状态: sudo systemctl status keepalived

  9. 检查 vip 地址是否绑定: ip a

  10. 使用 vip 访问服务: curl http://10.1.2.53/server_status/

posted @ 2025-08-10 21:36  守望人间  阅读(22)  评论(0)    收藏  举报