部署清单
| 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 {

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

被折叠的 条评论
为什么被折叠?



