- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
1.环境说明
2 C0 ~1 F+ v, q# ?, H- }4 b7 T 六台服务器,两台作为director,四台作为两组real server。
X5 s$ f) C; d/ y& `2 C( ^3 W; R3 ~9 ^. v6 q8 y& \8 Y* T0 p
director为
8 f9 y2 _- c" M6 Y: V 10.8.80.110(keepalived master)和10.8.80.111(keepalived backup),
3 K4 H+ V& a3 l0 H7 G8 E& R; l+ E
vip:10.8.80.112。; K- {3 `$ o$ \2 u
两组real server
2 ~+ M5 |& C' B8 Y/ R' t 为10.8.80.101:80,10.8.80.102:80和10.8.80.105:8889,10.8.80.106:8889
6 O4 l2 k& C1 }: Y K# P @" f6 K7 W+ `$ t4 Q; A5 k
2.安装和配置LVS- ^3 N( ~1 U* }& |
两台director上安装ipvadm" F0 Q8 I0 D- w, B: \# V- z
$ {3 o/ V9 p+ Z! a* X2 c" Iyum install -y ipvsadm
$ B; E, Q. q4 @& E, i- b 两台director上编写DR模式脚本7 T. f8 F0 K, F4 L! j: F; U
R- R; t7 T& _; a; y8 m
vim /usr/local/sbin/lvs_dr.sh1 G) X0 x3 T. T9 k7 v9 @
添加内容
. u& T H" K& S0 g
" {/ ~4 Q( C% R#! /bin/bash# S1 R& B) d$ ~' t3 \# H' x* l' o
echo 1 > /proc/sys/net/ipv4/ip_forward
) U2 K- F4 q$ uipv=/sbin/ipvsadm
- ^. ]! {/ Z0 zvip=10.8.80.112* z8 p; Y1 g& _6 a; B9 T
rs1=10.8.80.101
' g O% r8 v; r4 frs2=10.8.80.102
+ |! M$ H3 m7 _. [ H+ |/ Q! qrs3=10.8.80.105
1 C' ~! ?0 E0 b7 |rs4=10.8.80.106: s8 J, W8 r x: R l6 p
$ipv -C8 a5 R% L* R, r9 o, u: `
$ipv -A -t $vip:80 -s rr
' W/ \; C" p# ~. v6 w; h& t/ Q+ Q$ipv -a -t $vip:80 -r $rs1:80 -g -w 1& M3 u. p) o& k) Y
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
$ T* S; W% W9 R) o) }$ipv -A -t $vip:8889 -s rr
! Q8 y# @% @8 ]$ipv -a -t $vip:8889 -r $rs3:8889 -g -w 1
" |4 y5 P+ W, s H' f$ipv -a -t $vip:8889 -r $rs4:8889 -g -w 1! u3 j+ G# v. Y. G% c2 E1 ]* k
然后在四台real server上编写脚本. P* ~9 ]; o! f
+ [5 Y7 J m4 O6 V, t7 U
vim /usr/local/sbin/lvs_dr_rs.sh
% `0 t [; R r; Y6 T 添加内容: u% P* R0 Q$ }# \/ p
p% F* G+ o! D+ ]#! /bin/bash
" Q: \9 m0 [/ I+ c6 svip=10.8.80.112" ~6 f x u& E+ _: k
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
; R* f; I- U! R( {$ T0 Vroute add -host $vip lo:0& i2 }( @: H! K- k, z8 f: H' W
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
1 j3 b/ g1 s3 k" F& W# gecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
; A# F9 c! B0 l C5 }+ Lecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignore/ f; ]$ A& a' d
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
( g( {; M' q) u2 u1 T, D3.安装Keepalived9 T) K" ^: l$ X
两台director上执行. a& r. s* E* d: ^
W! E) ~8 @+ `$ e7 A- a9 H( ~' \
yum install -y keepalived& G3 D" o2 b, d0 W& P/ c
两台director上编辑配置文件
0 ^1 o( ]1 Y* s4 C
1 ~, Z5 l6 {# L" D+ ]vim /etc/keepalived/keepalived.conf) s8 \4 c" f7 I" d: a* |
加入配置
: o8 s; C6 I* M1 l7 y
; x0 c9 v9 b4 J1 u9 j# b' Nvrrp_instance VI_1 {
. E4 V. O& H% V* x' \! C state MASTER //备上为BACKUP- d }7 |2 m. A8 t- w
interface eno16777984 //备的网卡名, |9 Y& K7 s- U5 s/ V! j( h
#lvs_sync_daemon_inteface eno16777984
% U3 {' }+ A. i virtual_router_id 51
& W1 V$ y, _5 [" F5 S9 R i4 G; J priority 100 //备为90
2 {1 p" G' j' c, u advert_int 16 J- _& k8 m8 o; z3 o* b
authentication {5 q, C# Z- x" l0 Z: y- a: \
auth_type PASS
5 R' q8 C- S( R a auth_pass 11115 d" B0 g, U& x% h6 H& J! Z+ w4 a; G
}. ]( u# ]' w4 E/ c' e
virtual_ipaddress {# w6 `3 O8 x3 I' k; I: V
10.8.80.112
, i" S- Y, J$ P5 E+ B9 V/ B }, K. `- \) T& C/ J
}4 V; I K, ?/ |( k7 i- L
virtual_server 10.8.80.112 80 {/ o6 S. {6 t% _1 s
delay_loop 3
- T1 G; {; @7 c4 H: O lb_algo wlc
1 P8 u' U* M0 z5 P lb_kind DR
1 ]' K a7 z/ F- M- {8 H I nat_mask 255.255.255.0 C/ j0 [9 w9 L: G' x0 {
persistence_timeout 60
# q' E }1 ~8 k& T9 D, p: g& C3 R protocol TCP2 K& @1 b f& D1 \
real_server 10.8.80.101 80 {
5 ?5 |9 f2 o5 P weight 100+ Z$ z/ ~; |' S6 Y
TCP_CHECK {% @8 Z% \( Z& N3 t. Q
connect_timeout 106 X2 c i" | x0 m. R
nb_get_retry 3( X. A {1 i- ]
delay_before_retry 3 F1 e( Z3 _- M& ]7 A; _4 c( d
connect_port 80
! L0 M, |4 R/ Y: k" S. t& M }2 [: A2 c7 s k; ]
}
# u$ I6 L5 ]/ ^ real_server 10.8.80.102 80 {
7 S5 @1 T4 g ]5 C8 R3 X weight 100
9 O% v# I9 ?; ^1 q/ ~6 O TCP_CHECK {
0 O6 E/ F0 f$ d+ {- C0 ~+ F connect_timeout 10
8 ~2 g/ H% k( L+ B( P9 g% h( S+ Z. N nb_get_retry 3
- c8 X3 ^' [0 c$ ], ] delay_before_retry 3; `" l( N4 @, W$ \; q2 L- c: G+ A9 H
connect_port 800 N8 a. [/ p' i- n; _
}5 T7 D2 M3 Q) [
}0 ?( ]4 X6 A$ \( [+ b+ C' ~# P
}4 e; ?4 L- X ]
virtual_server 10.8.80.112 8889 {
# G4 [ p, c: h+ m" o8 v delay_loop 3. v3 Z. N4 B( l+ G' ?
lb_algo wlc
% r: ~6 q! b7 C% O) l9 h6 X lb_kind DR
9 n8 E5 P& b9 c" b9 Z \! m: I9 d nat_mask 255.255.255.02 e) r4 q3 r+ q
persistence_timeout 60
T. y) i) c9 }4 s5 A( I protocol TCP$ k& ]6 u" v$ j$ ]7 Y& n; a
real_server 10.8.80.105 8889 {1 N5 Y/ S1 Z" N- o5 V2 m
weight 100
/ d# f+ d: p+ p1 m( p8 u TCP_CHECK {6 h; S4 I3 b) a& `9 x
connect_timeout 10
1 o# O$ J3 x5 z nb_get_retry 3
; Y- L3 J1 u7 v4 _$ e0 x delay_before_retry 3
* O5 A1 Y% b! B6 a. x k connect_port 8889$ S. c& w9 |8 M5 k5 |0 h, t
}
4 b7 l* D }/ d) U; G" R }
) }8 j) Z0 _1 f Y f# N real_server 10.8.80.106 8889 {
7 Y- i: A( H8 ], Q2 m; l* q weight 100
* H% d/ _7 T: Z+ k' [9 D# ~ TCP_CHECK {. z; p( B4 g; z3 @) i; ~
connect_timeout 10, a: P- V4 d( C/ e- [: j
nb_get_retry 3
y! M" V: L }6 K$ e delay_before_retry 3) y* Q& a- b5 O& F A
connect_port 8889
5 R* f' D6 q* @, x }
1 h* ]1 k( l. o1 K% o) y, H+ f }
( Q+ w2 E, [" L6 C: k}) R! O) W, C1 `( a& W
4.启动LVS+Keepalived
( {% G' j/ a, n2 F" w 两台director执行脚本+ i' y4 H1 O' Z& V
1
9 l) N6 n2 ]7 c/ M2 L qsh /usr/local/sbin/lvs_dr.sh# y l& ^1 [' Z8 T% O( u. [
两台director启动keepalived
% S, H2 Z9 ?' m% C7 _+ q* B9 m1 f' [7 }! o- |
systemctl start keepalived
" k5 ~* V! i1 |: A% y) f' m( } 四台real server执行脚本
$ {& S" s: M% j# [1" R9 X& a5 V* p9 w, v" s
sh /usr/local/sbin/lvs_dr_rs.sh9 ~$ g% f' Q; h% r1 A! J
LVS+Keepalived部署完成3 L/ E' ~1 ~0 B N; ^: j
|
|