Назначьте плавающий 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 и подключить их к экземпляру виртуальной машины