LbaasPool

Балансировщик нагрузки - позволяет балансировать трафик между серверами. В балансировщик нагрузки добавляют пулы балансировки с различными алгоритмами балансировки в которые добавляются участники - серверы.

Объект «пул балансировщика нагрузки»

class esu.LbaasPool(*args, token: Optional[str] = None, **kwargs)[исходный код]
Параметры:
  • id (str) – Идентификатор Lbaas Pool

  • name (str) – Имя Lbaas Pool

  • lbaas (object) – Объект класса esu.Lbaas. Балансировщик, к которому относится данный Lbaas Pool

  • connlimit (str) – лимит соединений для пула балансировщика

  • cookie_name (str) – Имя cookie

  • members (list) – Список объектов класса esu.LbaasPoolMember. Список участников, которые подключены к данному пулу балансировщика нагрузки

  • method (str) – метод по которому будет работать пул балансировщика

  • port (str) – порт по которому будет подключаться пул балансировщика

  • protocol (str) – протокол по которому будет работать пул балансировщика

  • session_persistence (str) – лимит соединений для пула балансировщика

  • token (str) – Токен для доступа к API. Если не передан, будет использована переменная окружения ESU_API_TOKEN

Примечание

Поля members и port необходимы для создания.

classmethod get_object(lbaas, pool_id, token=None)[исходный код]

Получить объект пула балансировщика по его ID

Параметры:
  • id (str) – Идентификатор Lbaas Pool

  • token (str) – Токен для доступа к API. Если не передан, будет использована переменная окружения ESU_API_TOKEN

Результат:

Возвращает объект LbaasPool esu.LbaasPool

Тип результата:

object

create()[исходный код]

Создать объект

Исключение:

ObjectAlreadyHasId – Если производится попытка создать объект, который уже существует

save()[исходный код]

Сохранить изменения

Исключение:

ObjectHasNoId – Если производится попытка сохранить несуществующий объект

destroy()[исходный код]

Удалить объект

Исключение:

ObjectHasNoId – Когда производится попытка удалить несуществующий объект

Примеры использования

Создать балансировщик нагрузки:

from esu import Lbaas, LbaasPool, LbaasPoolMember, Vm

lbaas = Lbaas.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
vm1 = Vm.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745f9')
vm2 = Vm.get_object('d5cd2cdc-b5b0-4d2e-8bc6-ea3f019745g5')
pool_member1 = LbaasPoolMember(vm=vm1, weight=50, port=80)
pool_member2 = LbaasPoolMember(vm=vm2, weight=50, port=80)
lbaas_pool = LbaasPool(method="ROUND_ROBIN", port=80, protocol="HTTP",
                       members=[pool_member1, pool_member2], lbaas=lbaas)
lbaas_pool.create()