• centos部署keepalived服务


    背景:在CentOS7,CentOS8下

    # 设置nginx的主页内容index.html,用于测试
    cd /usr/local/nginx/html
    echo 'This is Master' > index.html
    curl http://localhost
    
    # 获取和安装keepalived
    wget -c https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
    # 解压文件
    tar -zxvf keepalived-2.0.20.tar.gz
    # 编译安装
    cd keepalived-2.0.20
    ./configure
    # 检查确保如下信息为 yes
        Use VRRP Framework         : Yes
        Use VRRP VMAC                     : Yes
        Use VRRP authentication  : Yes
    
    make && make install && cd ..
    
    # 添加到系统服务,配置开机自启
    # keepalived1.2.24版本的操作
    cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
    chmod +x /etc/init.d/keepalived
    chkconfig keepalived on
    # 链接配置文件
    cd /usr/local/etc/sysconfig
    ln -s `pwd`/keepalived /etc/sysconfig/keepalived
    # 链接程序文件
    cd /usr/local/sbin
    ln -s `pwd`/keepalived /usr/sbin/keepalived
    
    # keepalived2.0.20版本的系统服务配置文件在这:
    # /usr/apps/keepalived-2.0.20/keepalived/keepalived.service,
    # 不过我也不记得当时是否有复制该文件到其他地方了。
    # 然后,它的配置方法是:systemctl enable --now keepalived.service 
    
    # 配置keepalived
    #     查看keepalived的配置文件模板
    less /usr/local/etc/keepalived/keepalived.conf
    # 配置文件默认路径:/etc/keepalived/keepalived.conf,该路径下必须要有该文件
    mkdir /etc/keepalived
    vi /etc/keepalived/keepalived.conf
    # 添加以下配置语句
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 21 # 虚拟路由的标识,同一个VRRP的MASTER和BACKUP应相同
        mcast_src_ip 192.168.78.21 # 设置real IP(可省略,默认将使用网卡的主IP)
        priority 100 # 优先级,权重(权重最高的主机将接管 virtual_ipaddress),范围0-254
        advert_int 1 # MASTER,BACKUP之间的同步检查的时间间隔,单位秒
        authentication { # 设置验证类型和密码
            auth_type PASS # 验证类型,PASS表示用密码验证
            auth_pass 123456
        }
        virtual_ipaddress { # 设置virtual IP地址池,每行一个
            192.168.78.20 # 为MASTER和BACKUP设置相同的virtual IP
        }
    }
    
    # 完成上述配置后,才可以启动服务
    service keepalived start  |  systemctl start keepalived.service
    # 查看keepalived进程是否存在,是否已启动
    ps aux | grep keepalived
    ip a | grep 192.168.78.20
    
    使用IP 192.168.78.20访问本服务器,可以看到之前编写的index.html内容。
    
    # 配置备用服务器的keepalived
    # 备用服务器和主服务器一样的安装和配置,然后修改成以下配置
    vrrp_instance VI_1 {
        state BACKUP
        priority 90
        ……
    }
    
    # 配置并保存防火墙策略
    iptables -I INPUT -s192.168.78.21 -p112 -jACCEPT
    service iptables save
    iptables -I INPUT -s192.168.78.22 -p112 -jACCEPT
    service iptables save
    
    # 修改备用服务器的nginx的index.html
    cd /usr/local/nginx/html
    echo 'This is Backup' > index.html
    # 可以配置多台备用服务器 
    
    # 主服务器中停止网络服务,查看,浏览器中显示的内容会自动切换成备用服务器的index.html的内容
    service network stop
    service network start
    
    # keepalived监控nginx服务
    # 在MASTER和BACKUP中都修改成如下配置
    vrrp_script chk_nginx { # 配置用于检测nginx运行的脚本
        script "/chk_nginx.sh" # 脚本文件的路径
        interval 5 # 检测间隔5秒一次
        weight -20 #检测失败时,权重的变化(减少20,原来是100,现在变为80)
    }
    vrrp_instance VI_1 { # 为VI_1 添加监控脚本
       ……
       track_script {
            chk_nginx
        }
    }
    
    # 编写监控脚本的代码
    vi /chk_nginx.sh
    
    #! /bin/bash
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        service nginx start
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            service keepalived stop
        fi
    fi
    # 授权
    chmod +x /chk_nginx.sh
    # 重新加载服务
    service keepalived reload
    
    # nginx + keepalived 高可用测试
    service nginx stop
    ps -C nginx --no-header
    cd /usr/local/nginx/sbin
    # 编写并执行test.sh脚本
    vi test.sh
    
    #! /bin/bash
    service nginx stop
    chmod -x nginx
    
    # 测试完成后,使用‘chmod +x nginx’恢复执行权限
    chmod +x test.sh
    ./test.sh
    # 刷新浏览器,查看内容变化
    # 小结:如果一台nginx出现故障,该服务器上的keepalived会尝试重启nginx,如果不行,则把keepalived自身也关闭掉,然后集群中的其他服务器会自动接管,继续提供服务。
    
    
  • 相关阅读:
    java.util.ConcurrentModificationException 异常问题详解
    java1.8新特性整理(全)
    理解serialVersionUID是什么?有什么用?如何生成?
    数据结构与算法--->基础篇冒泡,选择,插入,希尔
    学习Java的第二天
    学习Java的第一天
    SpringBoot(2)—使用小技术总结
    SpringBoot(1)—相关工具使用
    json工具类(二)——google包
    json工具类(一)——alibaba包
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15188541.html
Copyright © 2020-2023  润新知