lvs keepalive配置Jenkins2高可用

本文详细介绍Jenkins高可用部署流程,涉及LVS、Keepalived配置,实现服务自动切换及健康检查。涵盖脚本编写、定时任务配置,确保服务稳定运行。

部署清单

node trunk neibu release
master 10.155.10.171:8093 10.155.10.172:8091 10.155.10.173:8092
slave 10.155.10.174:8093 10.155.10.174:8091 10.155.10.174:8092

部署步骤

安装和启动ipvsadm

安装lvs

yum -y install ipvsadm

启动lvs

systemctl start ipvsadm

如果出现ipvsadm服务报错

/bin/bash: /etc/sysconfig/ipvsadm: No such file or directory

则执行命令

ipvsadm --save > /etc/sysconfig/ipvsadm

再查看 ipvsadm的启动状态 systemctl status ipvsadm

~]#systemctl status ipvsadm
● ipvsadm.service - Initialise the Linux Virtual Server
   Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
   Active: active (exited) since 日 2020-02-09 12:39:02 CST; 4min 49s ago
  Process: 46374 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=0/SUCCESS)
 Main PID: 46374 (code=exited, status=0/SUCCESS)
如上说明服务正常启动

安装和启动keepalived

#安装依赖应用(没有使用源码包方式安装,因为配置超麻烦)
[root@localhost ~]# yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
[root@localhost ~]# yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
[root@localhost ~]# yum install -y keepalived

#yum安装的 keepalived配置文件在 /etc/keepalived 目录中

[root@localhost ~]# systemctl start keepalived   //启动keepalived
[root@localhost ~]# systemctl restart keepalived  //重新启动keepalived
[root@localhost ~]# systemctl status keepalived   //查看keepalived状态

#如果主备服务器间网络不通,则需要关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#启动keepalived以后,查看是否出现虚拟ip,主备上都要执行查看,正常应该只有主出现虚拟ip,备不出现,如果主备都出现了,说明脑裂了。
1、主备之间是否通信正常,若不正常是否有防火墙阻挡
2、主备对应的keepalived.conf配置是否有误,virtual_router_id配置不一致
3、硬件故障:心跳线坏了、网卡坏了、IP配置冲突等

配置keepalived

1. 主机 keepalived.conf配置

执行 vi /etc/keepalived/keepalived.conf 修改keepalived配置。

修改keepalived配置以后要执行 systemctl restart keepalived 命令重启 keepalived服务

主机 10.155.10.171

! Configuration File for keepalived

global_defs {
   #全局routerid,可以设置为ip
   router_id 10.155.10.171
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   #如果需要调用脚本,需要配置执行脚本的用户
   script_user root
   #配置允许执行脚本
   enable_script_security
}

#虚拟实例
vrrp_instance JENKINS2_TRUNK {
    #主机设置为master
    state MASTER
    #选取ifconfig -a 后除了docker和lo外的第一个物理网卡配置
    interface em1
    # vrrp_instance的id,主备必须配置相同
    virtual_router_id 188
    priority 100
    advert_int 1
    authentication {
        # PASS 为密码类型
        auth_type PASS
        # 密码 主备keepalive配置要一致
        auth_pass StupidMan
    }
    virtual_ipaddress {
        # 虚拟ip地址
        10.155.10.167
    }
}
#虚拟服务, ip设置与  vrrp_instance的 virtual_ipaddress 一致,端口为应用服务的端口,如trunk jenkins服务端口8093
virtual_server 10.155.10.167 8093 {
    delay_loop 6
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    #真实服务器,有几台机器就配置几个,主备都要在这里包括,ip为真实服务的物理ip和应用的端口,本trunk配置的端口为8093
    real_server 10.155.10.171 8093 {
        weight 3
        #服务停掉时调用的脚本
        notify_down "/tol/data/jenkins-scripts/jenkins2-trunk/script_notify.sh down"
        #服务启动时调用的脚本
        notify_up "/tol/data/jenkins-scripts/jenkins2-trunk/script_notify.sh up"
        #对配置的此真实器的对应服务进行健康检查
        HTTP_GET {
            url {
              path /login
              status_code 200
            }
            connect_timeout 3
            //
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 10.155.10.174 8093 {
        weight 3
        HTTP_GET {
            url {
              path /login
              status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

}

10.155.10.172

! Configuration File for keepalived

global_defs {
   router_id 10.155.10.172
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   script_user root
   enable_script_security
}

vrrp_instance JENKINS2_NEIBU {
    state MASTER
    interface em1
    virtual_router_id 185
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass StupidMan
    }
    virtual_ipaddress {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值