马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
在openstack上的虚拟机绑定vip有些情况下,客户想在openstack的虚拟机上配置vip搭建高可用集群,下面我就简单的说下在openstack上的虚拟机如何绑定vip
' Z; ]5 W: l/ _# C8 X+ { 操作步骤1、导入环境变量 source admin-openrc* b6 ?: |* i) A) _' H4 Y' ? ?! ~5 S
) s$ R, c& {; Y$ V: O3 E
2、执行命令neutron net-list查看网络,找到自己需要设置的网络,获取subnet_id和network_id neutron net-list id | name | tenant_id | subnets 32482d56-bb40-4b7f-85df-3be3a460e441 | HA network tenant 7ba30c1e519d4d6eb8f1ace2cfbf30d3 | | 860bf95f-4775-4fac-af88-db392f254416 169.254.192.0/18 7cc26554-2795-4a53-b053-34ec1b4c90f2 | web | 7ba30c1e519d4d6eb8f1ace2cfbf30d3 | 4b1f707b-8842-4ce0-acba-4f0de304459b 192.168.1.0/24
2 r( l0 I9 J) E; {/ B 12 g" o% ^& `) x! g! o# G0 w
2, B1 Q+ O4 N: O/ b' H- }( _
3. r. P( W1 I: `; ~8 u G
4
! [: l' j# j* R* r* r5& J k0 n, J; [/ c
61 l( _$ ?1 h) m* }; R. y6 Q4 }) l
7
) _, X% q6 Y1 p, l87 r3 C9 T4 v7 D
| # neutron net-list
, |4 y4 \& c6 o3 H( x7 |( M+--------------------------------------+----------------------------------------------------+----------------------------------+-------------------------------------------------------+
& e2 d3 T5 P. l: N" N5 ?| id | name | tenant_id | subnets |9 L7 j! C: R; @( b( g
+--------------------------------------+----------------------------------------------------+----------------------------------+-------------------------------------------------------+0 h) l# c) I5 o
| 32482d56-bb40-4b7f-85df-3be3a460e441 | HA network tenant 7ba30c1e519d4d6eb8f1ace2cfbf30d3 | | 860bf95f-4775-4fac-af88-db392f254416 169.254.192.0/18 |
4 z8 N) l x( a1 }- f# I2 s( o5 {| 7cc26554-2795-4a53-b053-34ec1b4c90f2 | web | 7ba30c1e519d4d6eb8f1ace2cfbf30d3 | 4b1f707b-8842-4ce0-acba-4f0de304459b 192.168.1.0/24 |& d9 q. S9 b2 q$ ]! u8 k6 G" P0 ?$ n
| d0ad534f-1bcd-43b0-aa0c-edee32520020 | public | 21c161dda51147fb9ff527aadfe1d81a | 9a7f07e5-e906-4622-8bc6-def64b3622ec 172.18.23.0/24 |
) ?* p' @! D- x4 [* P' ~0 C+--------------------------------------+----------------------------------------------------+----------------------------------+-------------------------------------------------------+3 w4 }. _7 s( f) V
|
# C: R; ~. _1 o# u. x# E, d* @
$ C! i: v5 j7 D; m0 u3、创建port来占用ip,保证neutron不会将此IP在分配出去,导致IP冲突问题。0 ~- H1 w' {# Q
1( k/ G" A7 E: T3 Q9 [! w
2
5 Y, g# k2 e* ^2 u- W- f: n3
0 ^" M% y' G- A. ~8 ~5 z3 {2 v, C44 q$ x) G, a3 J6 Z5 X8 q6 Y
5
* m7 X& Z( f4 t$ O, Y0 ]" i6 x | neutron port-create --fixed-ip subnet_id=<subnet_id>,ip_address=<vip> <network_id>. L( N' q1 h$ @; t: p) F
注:; [7 f* C" T% X' _. Y
替换subnet_id为neutron net-list中查看到的subnet_id
- |. I3 m8 u* a3 v* J 替换vip为需要配置的vip地址
( a g% `& Y4 C 替换network_ID为neutron net-list中查看到的network_id
' G# I0 ]4 p5 a# j- `+ ]- L |
5 \3 `5 ^5 r$ N( K1 F* a9 X& S. v具体命令如下
9 J) t# P% B1 N5 k: x+ H N& [6 ? 1
+ N( R1 o$ k. v+ W5 [2
+ i2 ?) Q) Y& H# W( c- D. c3
* v) k3 G; C& b- B/ i4 P4
u: `+ G" ^6 U; V/ }59 `* e; j9 ]- T# W' |8 z6 m' ^
6* w0 R1 q; S5 P5 c
7# P* M ]4 T- o8 _& |& _4 c+ U
8
& V( a! Q' F& r0 H5 F' q9" _+ c- L4 w6 j1 y6 a
10* W! q; d2 x9 Q3 H7 H* v
11
4 @6 q6 J) @# u' E& v3 V u8 t12% `* E$ u" J9 k0 o5 A3 w
131 W. h+ {! n* A
14
& [5 x, N d8 `& g* `( d: L* h15& Q) }2 a# S8 y8 x: K8 h5 s
167 ^) k" M& k7 y/ O8 q" s* l: [
17
0 c$ s7 g ~* \185 c: K2 Q6 ?3 q" H8 V* i g
19% i5 q' N4 C* ^: Z! I+ \
208 N. X. t6 ]9 R4 R
21
) k7 P5 G, I/ v8 r/ C22+ m8 L# i# f T, Q% S; q
23; Y& N& X" s+ K5 x5 s( W6 n. r+ D/ x/ ] t
24
0 k/ u g T4 o# y1 T- j25
/ u. b, y2 f4 Y) Q2 h263 ~. v0 j! V$ V0 j4 x. A
27$ f8 o: v, u1 W# k
28" X5 A; _' `/ j0 y' C1 f4 d, z" _
299 V/ r2 [7 b0 f0 l/ X
30* Y# ^5 R3 {, {/ [. T
31
% P# d2 C. k& J; u" h% ^ | # neutron port-create --fixed-ip subnet_id=9a7f07e5-e906-4622-8bc6-def64b3622ec,ip_address=172.18.23.10 d0ad534f-1bcd-43b0-aa0c-edee32520020
' x) m7 q5 j4 j8 G/ T# CCreated a new port:/ u/ h- t2 R; c6 A
+-----------------------+-------------------------------------------------------------------------------------+; F2 A4 q3 k7 I1 B$ ]* i" v
| Field | Value |
* b5 P" c! U z; f" G& h+-----------------------+-------------------------------------------------------------------------------------+
& p# P5 e. ^! o( X; k. q, m| admin_state_up | True |
! R, X( H7 s- R; E) p: u| allowed_address_pairs | |
! k% W& g6 x) i| binding:host_id | |3 p% f; P' X5 I- Q8 X% y6 X6 z
| binding:profile | {} |% i, t1 }6 p* E- ?; F& T
| binding:vif_details | {} |
( i: n$ h. j7 M _3 R8 h1 O! _8 i| binding:vif_type | unbound |+ y7 s; W& Q. d; I) I! D
| binding:vnic_type | normal |
, W) j f, E/ V& G4 u| created_at | 2017-11-28T02:35:17Z |3 E* @( T7 ^/ D; h# F$ o6 M
| description | |! d' S4 V* c0 P) _# K
| device_id | |
7 f" k: I) Q% L5 h' l1 s, w| device_owner | |
7 D$ m5 Z$ l6 d| extra_dhcp_opts | |
7 |) H2 n6 a3 w' a/ I+ {8 a| fixed_ips | {"subnet_id": "9a7f07e5-e906-4622-8bc6-def64b3622ec", "ip_address": "172.18.23.10"} |
( E& Y- }& a0 x) b0 [3 u| id | 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63 |
: H& Q1 ~$ c" N. [+ d' G5 r5 f| mac_address | fa:16:3e:ea:81:a6 |7 U- N, S& S$ Z
| name | |
' E# c- {, V1 w0 ?+ p| network_id | d0ad534f-1bcd-43b0-aa0c-edee32520020 |
% H2 `6 K6 b' A$ ~& s0 [| port_security_enabled | True |
$ o& n1 Y, B/ T9 t0 G8 ~, @| project_id | 21c161dda51147fb9ff527aadfe1d81a |: W! K$ P: p" I4 ?/ ~' _+ o% f
| revision_number | 5 |
! v; H4 l; m# J| security_groups | abfba384-55f2-4eed-902a-712369be9604 |/ b6 U$ B" o% h( u4 R) c
| status | DOWN |# }+ h/ e, d5 \/ Z2 g, p8 Y
| tags | |
" r D0 g% O: g# f0 x| tenant_id | 21c161dda51147fb9ff527aadfe1d81a |
6 @5 I" z V r| updated_at | 2017-11-28T02:35:18Z |
& X8 L6 U/ |) ~, K& g# k+-----------------------+-------------------------------------------------------------------------------------+1 ]: h, `1 j# _8 r- c
|
! Y: t1 u$ X- s# L% A$ b, w! y7 F2 j% F* D. k& k: @4 E
4、执行命令neutron port-list查看端口,找到VIP的Port ID以及需要使用VIP的虚拟机的IP对应的Port id, d# D% p; w, ?6 g* }9 M
比如两台虚拟机做HA绑定vip,那么需要查看两台虚拟机的port ID和这个vip的port ID
: S& v z0 T/ U: M 1
# ]6 G% H) c& G' \. A2, S! {" T& L. V% W
| # neutron port-list|grep 172.18.23.10
. r4 {( o0 S$ `& v8 Y( a| 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63 | | 21c161dda51147fb9ff527aadfe1d81a | fa:16:3e:ea:81:a6 | {"subnet_id": "9a7f07e5-e906-4622-8bc6-def64b3622ec", "ip_address": "172.18.23.10"} |2 J* r2 g1 L( ?. I9 H
| - M/ a5 [* P! I
可以看出vip172.18.23.10的port id为7c7ccc26-9ac9-4ef7-8178-2b97218b1d63.
9 F1 K5 N" U4 v/ G: k5、取消安全组对应端口的管理0 i$ A f4 B. E2 X3 h; ^
14 }6 Y0 L/ G1 Z; b4 i9 S
2 _& U/ F6 H& f& J1 J( Z9 b+ s
3& C$ I+ c% B( y4 E5 L& T
4
* o3 S& `* B& B) N* j1 g | neutron port-update --no-security-groups <Port_id>3 |" f8 ]: \9 @6 K
neutron port-update --port_security_enabled=false <Port_id>0 d& E0 d! a6 p
注:
1 T& D7 V& L. j+ N- J 替换Port_id为之前neutron port-list中找到的Port_id
. g0 V7 X1 {, f+ D |
* h' C3 j P8 L具有命令如下:
& H! z9 u( @% K 19 e+ }) G1 b5 G1 x" }
20 u1 T" Y8 I `" y
3
3 o$ a0 H8 {! M* V. i, E4
' f9 U' U( S. J) a6 @ | # neutron port-update --no-security-groups 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63
/ b5 Y4 p# R* N- ?- k+ |Updated port: 7c7ccc26-9ac9-4ef7-8178-2b97218b1d630 C. `) N1 x5 F
# neutron port-update --port_security_enabled=false 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63
. z' @0 p! p0 [( ?, _Updated port: 7c7ccc26-9ac9-4ef7-8178-2b97218b1d633 L; ?7 {: ]) `& y8 |. f( W
| 5 S% S+ @# P3 V$ ]1 W
6、此时执行命令neutron port-show 9 |# q/ E, K$ B, H' \
8 {" j8 W Y& k
可看到port_security_enabled的value为False,security_groups的value为空,即OK,这样两个端口就没有了安全组了。
% h2 c% f# M0 Z9 L- _+ S$ [7、意思就是对VIP和需要使用VIP的虚拟机都执行4、5、6步,比如配置HA,VIP+两台虚拟机,总共3个Port,都需要执行4、5、6步0 |$ b. B+ _5 E& l3 z
然后就可以在这两台虚拟机上搭建keepalived集群使用172.18.23.10这个vip了。 |