如何将浮动IP地址分配给OpenStack中的实例
我们想从公共网络分配OpenStack实例浮动IP地址?
在OpenStack中创建虚拟实例时,它将在分配它的网络中自动分配固定IP。
此IP地址与实例永久关联,直到实例终止。
OpenStack还可以选择使用从外部网络子网创建的浮动IP地址的选项。
"浮动IP"是可以动态添加到正在运行的虚拟实例的IP地址。
无论有问题的实例的状态如何,都可以随时修改浮动IP关联。
以下是我们将用于在OpenStack中创建浮动IP地址的过程,并将其分配给实例。
步骤1:在专用网络上创建一个实例
首先在专用网络中从OpenStack Horizo n Dashboard或者CLI创建虚拟实例。
我有两个网络 - 公共和私人。
实例将在私有子网上创建。
$openstack network list +--------------------------------------+---------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+---------+--------------------------------------+ | b94431cb-08cf-42ea-be61-55f5cf459276 | private | 57601b99-ea64-41a8-a927-fbd591ae3f2b | | f7ccac3b-73eb-49bf-a4ec-af750216b819 | public | 7536e4a8-6aa8-45dc-aed6-1a98afcf416d | +--------------------------------------+---------+--------------------------------------+ $openstack subnet list +--------------------------------------+----------------+--------------------------------------+----------------+ | ID | Name | Network | Subnet | +--------------------------------------+----------------+--------------------------------------+----------------+ | 57601b99-ea64-41a8-a927-fbd591ae3f2b | private_subnet | b94431cb-08cf-42ea-be61-55f5cf459276 | 10.10.1.0/24 | | 7536e4a8-6aa8-45dc-aed6-1a98afcf416d | public_subnet | f7ccac3b-73eb-49bf-a4ec-af750216b819 | 96.220.99.8/29 | +--------------------------------------+----------------+--------------------------------------+----------------+
我将创建一个名为testfloation的实例从Ubuntu 18.04模板。
openstack server create \ --image Ubuntu-18 \ --key-name jmutai \ --flavor m1.small \ --security-group 7fffea2a-b756-473a-a13a-219dd0f1913a \ --network private \ testfloating
VM创建可以从OpenStack仪表板完成。
创建后,确认服务器正在运行。
$openstack server show testfloating +-------------------------------------+----------------------------------------------------------+ | Field | Value | +-------------------------------------+----------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | server1.theitroad.com | | OS-EXT-SRV-ATTR:hypervisor_hostname | server1.theitroad.com | | OS-EXT-SRV-ATTR:instance_name | instance-0000002e | | OS-EXT-STS:power_state | Running | | OS-EXT-STS:task_state | None | | OS-EXT-STS:vm_state | active | | OS-SRV-USG:launched_at | 2019-09-22T07:13:40.000000 | | OS-SRV-USG:terminated_at | None | | accessIPv4 | | | accessIPv6 | | | addresses | private=10.10.1.185 | | config_drive | | | created | 2019-09-22T07:13:35Z | | flavor | m1.small (1) | | hostId | da0a05ef20a03e97f301563551bab9b669ef04adbce232d941519946 | | id | a731e48d-d3b5-4fcf-8fc7-f8f280b51b44 | | image | Ubuntu-18 (7bd462ad-cc11-4d89-8b85-9aab0cfe114b) | | key_name | jmutai | | name | testfloating | | progress | 0 | | project_id | 06bcc3c56ab1489282b65681e782d7f6 | | properties | | | security_groups | name='default' | | status | ACTIVE | | updated | 2019-09-22T07:13:40Z | | user_id | 336acbb7421f47f8be4891eabf0c9cc8 | | volumes_attached | | +-------------------------------------+----------------------------------------------------------+
步骤2:从外部网络池保留浮动IP地址。
我们需要从外部网络子网池中保留浮动IP地址。
这可以从Web仪表板或者CLI完成。
来自CLI:
openstack floating ip create --project admin --subnet public_subnet public
其中:admin是所有者的项目。
创建的浮动IP将在此项目中可用.public_subnet是我们想要创建浮动IP.Public的子网的名称,用于分配浮动IP的网络名称。
通过执行查看所有选项:
$openstack floating ip create --help
来自仪表板:
以具有成员角色的用户登录仪表板。
导航到:
项目>网络>浮动IPS
单击"将IP分配给项目"按钮。
在新窗口中,选择一个池,提供描述,然后单击"分配IP"。
步骤3:将保留的浮动IP地址与实例相关联。
保留浮动IP地址后,我们可以将其与实例相关联。
来自CLI:
$openstack floating ip list $openstack server list $openstack server add floating ip <server> <ip-address> # Example: $openstack server add floating ip testfloating 96.220.99.11
来自仪表板:
选项1:项目>网络>浮动IPS>选择IP>关联
选择浮动IP,实例和端口以关联。
选项2:项目> Compute>实例
在"操作"下,选择"关联浮动IP"
选择IP地址,然后单击"关联"。
解除浮动IP地址
要解除IP地址,请使用以下任一方法:
CLI:
$openstack server remove floating ip <server> <ip-address>
仪表板:项目>网络>浮动IPS> DisassociateProjection> Compute>实例>操作>解剖浮动IP
这完全是如何将浮动IP地址与OpenStack上运行的实例相关联。