admin 发表于 2018-12-20 11:42:47

openstack虚拟机VIP配置步骤

在openstack上的虚拟机绑定vip有些情况下,客户想在openstack的虚拟机上配置vip搭建高可用集群,下面我就简单的说下在openstack上的虚拟机如何绑定vip
操作步骤1、导入环境变量source admin-openrc

2、执行命令neutron net-list查看网络,找到自己需要设置的网络,获取subnet_id和network_id neutron net-listid                                 | 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   

1
2
3
4
5
6
7
8
# 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   |
| d0ad534f-1bcd-43b0-aa0c-edee32520020 | public                                             | 21c161dda51147fb9ff527aadfe1d81a | 9a7f07e5-e906-4622-8bc6-def64b3622ec 172.18.23.0/24   |
+--------------------------------------+----------------------------------------------------+----------------------------------+-------------------------------------------------------+


https://ljw.howieli.cn/blog/2017-11-28/net-list.png
3、创建port来占用ip,保证neutron不会将此IP在分配出去,导致IP冲突问题。

1
2
3
4
5
neutron port-create --fixed-ip subnet_id=<subnet_id>,ip_address=<vip> <network_id>
注:
      替换subnet_id为neutron net-list中查看到的subnet_id
      替换vip为需要配置的vip地址
      替换network_ID为neutron net-list中查看到的network_id


具体命令如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# neutron port-create --fixed-ip subnet_id=9a7f07e5-e906-4622-8bc6-def64b3622ec,ip_address=172.18.23.10 d0ad534f-1bcd-43b0-aa0c-edee32520020
Created a new port:
+-----------------------+-------------------------------------------------------------------------------------+
| Field               | Value                                                                               |
+-----------------------+-------------------------------------------------------------------------------------+
| admin_state_up      | True                                                                              |
| allowed_address_pairs |                                                                                     |
| binding:host_id       |                                                                                     |
| binding:profile       | {}                                                                                  |
| binding:vif_details   | {}                                                                                  |
| binding:vif_type      | unbound                                                                           |
| binding:vnic_type   | normal                                                                              |
| created_at            | 2017-11-28T02:35:17Z                                                                |
| description         |                                                                                     |
| device_id             |                                                                                     |
| device_owner          |                                                                                     |
| extra_dhcp_opts       |                                                                                     |
| fixed_ips             | {"subnet_id": "9a7f07e5-e906-4622-8bc6-def64b3622ec", "ip_address": "172.18.23.10"} |
| id                  | 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63                                                |
| mac_address         | fa:16:3e:ea:81:a6                                                                   |
| name                  |                                                                                     |
| network_id            | d0ad534f-1bcd-43b0-aa0c-edee32520020                                                |
| port_security_enabled | True                                                                              |
| project_id            | 21c161dda51147fb9ff527aadfe1d81a                                                    |
| revision_number       | 5                                                                                 |
| security_groups       | abfba384-55f2-4eed-902a-712369be9604                                                |
| status                | DOWN                                                                              |
| tags                  |                                                                                     |
| tenant_id             | 21c161dda51147fb9ff527aadfe1d81a                                                    |
| updated_at            | 2017-11-28T02:35:18Z                                                                |
+-----------------------+-------------------------------------------------------------------------------------+


https://ljw.howieli.cn/blog/2017-11-28/port-create.png
4、执行命令neutron port-list查看端口,找到VIP的Port ID以及需要使用VIP的虚拟机的IP对应的Port id
比如两台虚拟机做HA绑定vip,那么需要查看两台虚拟机的port ID和这个vip的port ID

1
2
# neutron port-list|grep 172.18.23.10
| 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"}|


可以看出vip172.18.23.10的port id为7c7ccc26-9ac9-4ef7-8178-2b97218b1d63.
5、取消安全组对应端口的管理

1
2
3
4
neutron port-update --no-security-groups <Port_id>
neutron port-update --port_security_enabled=false <Port_id>
注:
            替换Port_id为之前neutron port-list中找到的Port_id


具有命令如下:

1
2
3
4
# neutron port-update --no-security-groups 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63
Updated port: 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63
# neutron port-update --port_security_enabled=false 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63
Updated port: 7c7ccc26-9ac9-4ef7-8178-2b97218b1d63


6、此时执行命令neutron port-show
https://ljw.howieli.cn/blog/2017-11-28/port-show.png
可看到port_security_enabled的value为False,security_groups的value为空,即OK,这样两个端口就没有了安全组了。
7、意思就是对VIP和需要使用VIP的虚拟机都执行4、5、6步,比如配置HA,VIP+两台虚拟机,总共3个Port,都需要执行4、5、6步
然后就可以在这两台虚拟机上搭建keepalived集群使用172.18.23.10这个vip了。

admin 发表于 2021-12-7 15:09:56

安全组允许VRRP协议
直接在控制台导航:项目-访问&安全,搜索虚机所在的安全组, 然后点击后面的管理规则按钮进入规则列表;点击添加规则按钮,弹出框里,在规则的下拉选里选择 其他协议, 然后再 端口 文本框输入 112, 最后点击添加按钮即可 # VRRP协议的端口号是112
页: [1]
查看完整版本: openstack虚拟机VIP配置步骤