Поиск по сайту:

Назначьте плавающий IP-адрес экземпляру в OpenStack |


Вы хотите назначить экземпляру OpenStack плавающий IP-адрес из вашей общедоступной сети? Когда виртуальный экземпляр создается в OpenStack, ему автоматически присваивается фиксированный IP-адрес в сети, которой он назначен. Этот IP-адрес постоянно связан с экземпляром до тех пор, пока экземпляр не будет закрыт.

OpenStack также дает вам возможность использовать плавающий IP-адрес, созданный из подсети внешней сети. «Плавающий IP» — это IP-адрес, который можно динамически добавлять к работающему виртуальному экземпляру. Ассоциацию плавающего IP-адреса можно изменить в любое время независимо от состояния рассматриваемого экземпляра.

Вот процесс, который вы будете использовать для создания плавающего IP-адреса в OpenStack и назначения его экземпляру.

Шаг 1. Создайте экземпляр в частной сети.

Сначала создайте виртуальный экземпляр из информационной панели OpenStack Horizon или 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 |
+--------------------------------------+----------------+--------------------------------------+----------------+

Я создам экземпляр под названием testfloating на основе шаблона Ubuntu 22.04.

openstack server create \
 --image Ubuntu-22 \
 --key-name jmutai \
 --flavor m1.small \
 --security-group  7fffea2a-b756-473a-a13a-219dd0f1913a  \
 --network private  \
 testfloating

Создание виртуальной машины можно выполнить с панели управления OpenStack.

После создания убедитесь, что сервер работает.

$ openstack server show testfloating
+-------------------------------------+----------------------------------------------------------+
| Field                               | Value                                                    |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                   |
| OS-EXT-AZ:availability_zone         | nova                                                     |
| OS-EXT-SRV-ATTR:host                | server1.computingforgeeks.com                            |
| OS-EXT-SRV-ATTR:hypervisor_hostname | server1.computingforgeeks.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-адрес из пула подсетей внешней сети. Это можно сделать с помощью веб-панели или интерфейса командной строки.

Из интерфейса командной строки:

openstack floating ip create --project admin --subnet public_subnet public

Где :

  • admin  — проект владельца. Созданный плавающий IP-адрес будет доступен для присоединения к этому проекту.
  • public_subnet — имя подсети, в которой вы хотите создать плавающий IP-адрес.
  • public — имя сети, из которой будет выделен плавающий IP-адрес.

Посмотрите все варианты, набрав:

$ openstack floating ip create --help

Из панели управления:

Войдите в панель мониторинга как пользователь с ролью участника. Переход к:

Проект > Сеть > Плавающие IP-адреса

Нажмите кнопку «РАЗДЕЛИТЬ IP-адрес ДЛЯ ПРОЕКТА» . В новом окне выберите пул, укажите описание и нажмите «РАЗДЕЛИТЬ IP».

Шаг 3. Свяжите зарезервированный плавающий IP-адрес с экземпляром.

Как только плавающий IP-адрес зарезервирован, мы можем связать его с экземпляром.

Из интерфейса командной строки:

$ 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: Проект > Сеть > Плавающие IP-адреса > Выберите IP > Связать

Выберите плавающий IP-адрес, экземпляр и порт для связи.

Вариант 2: Проект > Вычисление > Экземпляры

В разделе Действия выберите «СВЯЗАТЬ ПЛАВАЮЩИЙ IP-адрес».

Выберите IP-адрес и нажмите «СВЯЗАТЬСЯ».

Отключить плавающий IP-адрес

Чтобы отключить IP-адрес, используйте любой из следующих методов:

CLI:

$ openstack server remove floating ip <server> <ip-address>

Панель управления:

  • Проект > Сеть > Плавающие IP-адреса > ОТКЛЮЧИТЬ
  • Проект > Вычисления > Экземпляры > Действия > ОТКЛЮЧИТЬ ПЛАВАЮЩИЙ IP-адрес.

Это все о том, как связать плавающий IP-адрес с экземпляром, работающим на OpenStack.

Другие руководства OpenStack:

Как создать экземпляр OpenStack с фиксированным/статическим IP-адресом

Как создавать проекты, пользователей и роли OpenStack

Как перенести экземпляр OpenStack с одного вычислительного хоста на другой

Как изменить размер экземпляра/виртуальной машины OpenStack

Как настроить экземпляры/виртуальные машины OpenStack для автоматического запуска после перезагрузки вычислений Nova

Как создать тома OpenStack Cinder и подключить их к экземпляру виртуальной машины

Статьи по данной тематике: