• keepalived


     防火墙 selinux 先都确保是关闭的

    # tar xf keepalived-2.0.17.tar.gz

    # cd keepalived-2.0.17

    # ./configure --prefix=/usr/local/keepalived

    # make && make install

    # mkdir /etc/keepalived

    # cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

    主配置文件

    ! Configuration File for keepalived
    global_defs {
    router_id LVS_DEVEL
    }
    vrrp_script check_run {
    script "/mysql_check.sh"
    interval 2
    fail 3
    }
    vrrp_sync_group VG1 {
    group {
    VI_1
    }
    }
    vrrp_instance VI_1 {
    state BACKUP
    nopreempt                            # 设置为不抢占
    interface ens33                     # ens33以实际为准
    virtual_router_id 51
    priority 100                         # 优先级高者为主
    unicast_src_ip 192.168.1.14       # 配置单播的源地址
    unicast_peer {
    192.168.1.15                     # 配置单播的目标地址
    }
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass 1418
    }
    track_script {
    check_run
    }
    virtual_ipaddress {
    192.168.1.16                            # VIP
    }
    }

    从配置文件

    ! Configuration File for keepalived
    global_defs {
        router_id LVS_DEVEL
    }
    vrrp_script check_run {
        script "/mysql_check.sh"
        interval 2
        fail 3
    }
    vrrp_sync_group VG1 {
        group {
            VI_1
        }
    }
    vrrp_instance VI_1 {
    state BACKUP
    nopreempt                            # 设置为不抢占
        interface ens33                     # ens33以实际为准
        virtual_router_id 51
    priority 90                          # 优先级低者为从
    unicast_src_ip 192.168.1.15       # 配置单播的源地址
    unicast_peer {
        192.168.1.14                     #配置单播的目标地址
    }
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1418
        }
        track_script {
            check_run
        }
        virtual_ipaddress {
            192.168.1.16                            # VIP
        }
    }

    mysql检查脚本 

    #!/bin/bash
    count=$(ps -C mysqld --no-heading |wc -l)
    if [ "${count}" = "0" ]; then
            #尝试启动一次mysqld,停止3秒后再次检测
            systemctl restart mysqld
            #/etc/init.d/mysqld restart
            sleep 3
            count=$(ps -C mysqld --no-heading |wc -l)
            if [ "${count}" = "0" ]; then
                    #如果启动没成功,就停止keepalived触发主备切换
                    systemctl stop keepalived
            fi
    fi

    nginx检查脚本

    #!/bin/bash
    count=$(ps -C nginx --no-heading |wc -l)
    if [ "${count}" = "0" ]; then
            systemctl restart nginx
            #/etc/init.d/nginx restart
            sleep 3
            count=$(ps -C nginx --no-heading |wc -l)
            if [ "${count}" = "0" ]; then
                    systemctl stop keepalived
            fi
    fi
  • 相关阅读:
    python开源项目
    Appscan 10用户安装手册
    20201201-k8s的node节点和独立nginx部署会冲突
    k8s-更换证书(apiserver新添加了VIP)
    20201224-修改pod网段(calico)
    深-宝的一梦
    洛谷-P3383 【模板】线性筛素数
    洛谷-P3913 车的攻击
    洛谷-P1866 编号
    洛谷-P1100 高低位交换
  • 原文地址:https://www.cnblogs.com/littlebylittle/p/12525193.html
Copyright © 2020-2023  润新知