- 积分
- 16844
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
1.环境说明0 a3 K- Y- H& j* m! q( J
六台服务器,两台作为director,四台作为两组real server。7 R) m* r. r3 u2 O
) X. }9 i6 X& I- zdirector为
6 {# x" f; M. ] 10.8.80.110(keepalived master)和10.8.80.111(keepalived backup),
# L$ I0 C4 q3 S h) G" E, ~# l X9 P6 a3 W
vip:10.8.80.112。
7 N1 _0 i9 ~( B0 K8 W3 l: U" W两组real server2 N/ P% i% Q% s5 w$ z3 b( c1 t7 S
为10.8.80.101:80,10.8.80.102:80和10.8.80.105:8889,10.8.80.106:8889
/ P$ f! X w3 u
{0 S' {1 Z3 y' a4 N+ d' }" e S% o2.安装和配置LVS' _1 q' W; G Y+ ~
两台director上安装ipvadm. ^) }& V6 x; i9 F2 V/ J3 K2 J
' f; y m% l3 J
yum install -y ipvsadm
: r K. {4 X v" R 两台director上编写DR模式脚本# ~. K2 [+ ^; r4 p- W8 g2 }% n
1 w& w- {. x1 f ]+ @6 ], F) `vim /usr/local/sbin/lvs_dr.sh
( B% k6 g6 e3 Q 添加内容. ?! i4 n4 z( B& Q* ?
' R" S/ m& B# y0 c$ C" P#! /bin/bash9 U5 G2 w! P: u* n- ^
echo 1 > /proc/sys/net/ipv4/ip_forward
! v ^7 |0 H% Jipv=/sbin/ipvsadm
( L: p1 ]) i; G* avip=10.8.80.112/ B$ |" T+ D& t5 f7 T0 Z- U A
rs1=10.8.80.101, A; F! N1 U# P
rs2=10.8.80.102
* k. L& v- X; {0 d; t) `$ ]. ~0 `rs3=10.8.80.105" o6 t7 B, d* v9 L) _0 ~' x
rs4=10.8.80.106; M. t7 C1 F8 d8 }& h& m3 V
$ipv -C
; `, V: @% d. }! f+ X! v' ~$ipv -A -t $vip:80 -s rr
8 S7 T" h. x! n$ s0 w" v6 m$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
5 g- c9 L$ t1 t$ipv -a -t $vip:80 -r $rs2:80 -g -w 13 E. Z, \4 N0 s
$ipv -A -t $vip:8889 -s rr
* }% U$ U9 F7 {( h1 F! i$ipv -a -t $vip:8889 -r $rs3:8889 -g -w 1% M( ^0 m9 R( H( M6 ?
$ipv -a -t $vip:8889 -r $rs4:8889 -g -w 1
% B6 V t5 u" }! S( W 然后在四台real server上编写脚本: X9 z+ j* l9 k+ O! |
- e: W' f8 ?1 u7 S. g0 T" E6 Yvim /usr/local/sbin/lvs_dr_rs.sh) L( ~# @6 z/ F: y/ Z
添加内容! i5 o. ~8 y y/ J8 o0 _
( k2 q! q5 D7 p8 Y' D9 W1 ^
#! /bin/bash
7 ?% U) L0 T6 Yvip=10.8.80.112* W( x8 m o; j; ?. P
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up " s. K, t1 c/ a$ p
route add -host $vip lo:0
, Z3 _6 v' m# p7 b, X' {1 R6 Necho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore7 r) n) \* i/ q2 U/ X
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
, Z0 V. t x9 b2 {+ Mecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignore, J) b& y4 f' h D" i# [: Q
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce; D$ }* f+ Q( r" S8 q% a P
3.安装Keepalived& r/ i2 b8 H9 R/ W3 w1 c: B/ u
两台director上执行/ I2 y* H7 i. _( \; P0 m7 u
4 p. H! g" g1 R; k* F, I4 O; [yum install -y keepalived
" ]7 H; e0 ?5 Y' ~3 h 两台director上编辑配置文件5 M; A8 g# u6 I* h+ u$ A
5 M' ^2 C% x2 Z5 Y) Q
vim /etc/keepalived/keepalived.conf" k+ a: I- n0 N. }
加入配置" Z$ w5 y& r% i
3 o2 {4 ?/ L( U' zvrrp_instance VI_1 {7 S% {7 [* i# n4 N
state MASTER //备上为BACKUP
2 h& \% c$ ]' _, R+ g9 B: z5 V* Q interface eno16777984 //备的网卡名$ K- a' F8 A. a: X/ H& P) z) A
#lvs_sync_daemon_inteface eno16777984
/ n$ T* [" H# {! f) \9 s4 H virtual_router_id 51/ S% k7 Y. \1 B5 }6 W6 D0 a/ V- X' u
priority 100 //备为90+ S8 b( Y$ w# c$ m* a8 E" D
advert_int 10 f0 r2 f, F9 v1 W) g/ V( U- v: C
authentication {
: \. f1 g: K0 M0 h8 w. ~8 A _8 v5 c' a auth_type PASS
9 z: R$ k# J; k/ Y6 @ auth_pass 11115 {% f! p7 _! y! F/ { {! Z& X
}: G8 U: M$ n# h
virtual_ipaddress {
0 N# M R' e8 Q. L g! d 10.8.80.1122 k# p ?1 ] E
}( A5 p a1 ~- v- r
}
! F$ l; E/ [4 mvirtual_server 10.8.80.112 80 {
( L/ c* L* ?* }0 p, \" O delay_loop 3& K4 r4 {) r, t8 Y" i+ b
lb_algo wlc( r+ u, N/ U, S4 _5 {5 a! H
lb_kind DR$ n8 u4 e# Z2 g* j. G. |7 {9 I
nat_mask 255.255.255.00 e! A) R" N+ E# t% A
persistence_timeout 60
7 p7 y: v; c" I& |" J protocol TCP' [+ u* d& n. e/ Y, `
real_server 10.8.80.101 80 {5 {) k3 L: `6 v7 K# ?/ F3 M
weight 1009 u a1 @& ^. J% t: e; C
TCP_CHECK {
' z4 r% g9 A2 u8 ~' p3 j* W7 D4 h connect_timeout 10
: b, W9 I) T: J8 k7 P. }1 @ nb_get_retry 37 Q* d' ? L4 @& L+ l, h
delay_before_retry 3
3 S6 ]2 o& \! P9 Y( ~, K" ]$ X/ q connect_port 806 i$ w. L! `4 J% H' R
}: {+ y5 a7 w' n9 y/ {
}! X+ W7 r' Q. z# F$ f
real_server 10.8.80.102 80 {
- d6 V" M9 s, T. b U5 ^* q weight 100
! g3 P% h7 B6 K8 |3 h TCP_CHECK {2 E6 R, k8 V, e# k2 b: @
connect_timeout 10+ q% z) h1 K2 t
nb_get_retry 3! N* n/ J9 c {# r8 P
delay_before_retry 3
& {2 q, y Q$ C% c connect_port 80
; x0 a6 d9 K) [* c+ b" j }4 V. i8 g5 R1 b
}( p' p1 \" E$ p" Y, G
}
' b5 Y/ S. o4 B" @virtual_server 10.8.80.112 8889 {
T$ |: M8 |" v; \% ` delay_loop 3
) D& ^) }" @3 f8 Y% d2 `) u3 I% B5 [ lb_algo wlc% s$ m' q/ b, ?* W
lb_kind DR
) ~" |3 z( h w nat_mask 255.255.255.07 Z6 C3 i8 Y e' D' O( M, T" h
persistence_timeout 60
; G, t* y. ]4 C& Z/ b5 l protocol TCP/ w& K+ b: [- B! D
real_server 10.8.80.105 8889 {
% ?% H. C4 Z3 G% w7 y. P weight 1001 F6 T) ?7 Q( F& _& x6 i+ g$ n1 Q
TCP_CHECK {
6 a; B5 E' ~6 h connect_timeout 10
0 u2 K) X; l5 o* \/ P% o$ h# w; K nb_get_retry 3+ y4 Y7 i4 ^7 d
delay_before_retry 3
& E% D2 m' N$ | connect_port 8889
' ?" h0 U# ^* Q1 Y+ b: V! k- f$ W }5 } g2 l$ L& M- F$ \9 G
}% @9 s/ p# ~; }, D. n
real_server 10.8.80.106 8889 {! W# r) A; `% Q t V% L) m
weight 100
& N, m( ^( n( C$ P2 N& o TCP_CHECK {
5 J9 d3 g: l. u) l connect_timeout 10% m- q2 O# [" w3 e0 c; ~' \
nb_get_retry 3
8 S. X0 V; L7 `; ]" u) X delay_before_retry 3$ ~4 |% b8 |( K
connect_port 8889
' X$ M' v. W' D2 j) \% v& ~2 k }+ ^1 t! I+ w3 Y) Q: a. f o& _
}" M2 v& B6 B* {8 {8 w
}
+ r. z2 H* \4 k7 }7 S8 E4.启动LVS+Keepalived
0 G l: m7 H% J8 M/ _* @ 两台director执行脚本3 L5 s. J2 c" ]0 X9 _" ~
1
. N: h3 D: _8 ?: Q0 J: Vsh /usr/local/sbin/lvs_dr.sh% t1 Q# L: U" T+ e' C! q
两台director启动keepalived
; i0 p$ Y! p3 R4 k8 E1
1 }# K7 Z1 W3 T! dsystemctl start keepalived+ M$ R5 n& L4 X* y. C
四台real server执行脚本
1 h5 v, b6 a. o6 J4 M2 U1
6 C$ ~; Z( j3 y; R; x) ksh /usr/local/sbin/lvs_dr_rs.sh
" y8 B" n6 P. X6 X LVS+Keepalived部署完成1 D9 v* M7 {9 A* y6 f0 @# f
|
|