|
|
|
|
_Resource_ функция **dynamix_lb** служит для управления балансировщиком нагрузки (load balancer). Балансировщики нагрузки служат для равномерного распределения сетевой нагрузки между подключенными к ним сервисами.
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
_Resource_ функция **dynamix_lb** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | :---: | --- |
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | ID ресурсной группы |
|
|
|
|
|
| name | string | :heavy_check_mark: | Название балансировщика |
|
|
|
|
|
| start | bool | :heavy_check_mark: | Флаг запуска балансировщика. По умолчанию - true. Eсли load balancer был в статусе "stopped" (start = false), то для успешного старта, он должен быть доступен (enable = true) |
|
|
|
|
|
| extnet_id | int | :x: | ID внешней сети. extnet_id и vins_id не могут быть одновременно равны 0 |
|
|
|
|
|
| vins_id | int | :x: | ID виртуальной сети. extnet_id и vins_id не могут быть одновременно равны 0 |
|
|
|
|
|
| desc | string | :x: | Описание балансировщика |
|
|
|
|
|
| enable | bool | :x: | Флаг доступности балансировщика |
|
|
|
|
|
| restart | bool | :x: | Флаг перезагрузки балансировщика. Можно использовать только на созданном ресурсе. По умолчанию - false. Перезагрузка происходит только при смене флага с false на true |
|
|
|
|
|
| safe | bool | :x: | Флаг перезапуска первичных и вторичных узлов последовательно в режиме высокой доступности (HA mode) |
|
|
|
|
|
| config_reset | bool | :x: | Флаг сброса конфигурации балансировщика. По умолчанию - false. Сброс происходит только при изменении флага с false на true |
|
|
|
|
|
| ha_mode | bool | :x: | Использовать высокодоступную схему для развертывания LB |
|
|
|
|
|
| permanently | bool | :x: | Флаг моментального удаления балансировщика из платформы. По-умолчанию - false. При необходимости, после изменения значения флага, необходимо выполнить `terraform apply` для изменения значения флага в состоянии терраформа, а после этого - `terraform destroy` |
|
|
|
|
|
| restore | bool | :x: | Флаг восстановления балансировщика после удаления. Восстановить возможно только балансировщики, удаленные с флагом permanently равным false. Предварительно, необходимо импортировать удаленный ресурс и изменить значение флага. После этого - выполнить `terraform apply`. |
|
|
|
|
|
| sysctl_params | []map[string]interface{} | :x: | Пользовательские значения sysctl для балансировщика |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
В случае успешного выполнения _resource_ функция **dynamix_lb** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| ha_mode | bool | Флаг, показывающий, включен ли режим haproxy |
|
|
|
|
|
| backends | []Struct{} [см. ниже](#описание-структуры-backend) | Список бекендов |
|
|
|
|
|
| created_by | string | Аккаунт, создавший балансировщик |
|
|
|
|
|
| created_time | int | Время создания |
|
|
|
|
|
| deleted_by | string | Кем балансировщик был удален |
|
|
|
|
|
| deleted_by | int | Время удаления |
|
|
|
|
|
| desc | string | Описание |
|
|
|
|
|
| dp_api_user | string | Имя пользователя для работы |
|
|
|
|
|
| extnet_id | int | ID внешней сети |
|
|
|
|
|
| frontends | []Struct{} [см. ниже](#описание-структуры-фронтенда) | Список фронтендов |
|
|
|
|
|
| gid | int | Grid ID балансировщика |
|
|
|
|
|
| guid | int | ID балансировщика |
|
|
|
|
|
| lb_id | int | ID балансировщика |
|
|
|
|
|
| manager_id | int | ID ресурса, к которому принадлежит данный балансировщик |
|
|
|
|
|
| manager_type | string | Тип ресурса, к которому принадлежит данный балансировщик |
|
|
|
|
|
| image_id | int | ID образа |
|
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
|
| name | string | Имя балансировщика |
|
|
|
|
|
| part_k8s | bool | Является ли балансироващик частью кластера |
|
|
|
|
|
| primary_node | Struct{} [см. описание узлов](#описание-структуры-узлов) | Главный узел |
|
|
|
|
|
| rg_id | int | ID ресурсной группы |
|
|
|
|
|
| rg_name | string | Имя ресурсной группы |
|
|
|
|
|
| secondary_node | Struct{} [см. описание узлов](#описание-структуры-узлов) | Второй узел |
|
|
|
|
|
| status | string | Статус |
|
|
|
|
|
| tech_status | string | Технический статус |
|
|
|
|
|
| updated_by | string | Кем балансировщик был обновлен |
|
|
|
|
|
| updated_time | string | Время последнего обновления |
|
|
|
|
|
| user_managed | bool | Флаг указывающий, может ли пользователь управлять балансировщиком напрямую |
|
|
|
|
|
| vins_id | int | ID виртуальной сети |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры backend
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| algorithm | string | Алгоритм работы бекенда |
|
|
|
|
|
| name | string | Имя бекенда |
|
|
|
|
|
| server_default_settings | Struct{} [см. ниже](#описание-структуры-настроек) | Описание настроек серверов бекенда по умолчанию |
|
|
|
|
|
| servers | []Struct{} [см. ниже](#описание-структуры-сервера) | Список серверов |
|
|
|
|
|
|
|
|
|
|
### Описание структуры настроек
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| downinter | int | Интервал между проверками на недоступность сервера |
|
|
|
|
|
| inter | int | Интервал между проверками на доступность сервера |
|
|
|
|
|
| rise | int | Кол-во попыток, после которых, сервер будет вновь включен в схему балансирования |
|
|
|
|
|
| fall | int | Кол-во неудачных попыток, после которых, сервер получит статус "unavailable" |
|
|
|
|
|
| slowstart | int | Интервал, в мс, в через который сервер получит статус "available" |
|
|
|
|
|
| maxconn | int | Кол-во соединений к северу, при достижении этого кол-ва, сервера выходит из схемы балансирования |
|
|
|
|
|
| maxqueue | int | Кол-во соедений в очереди к серверу |
|
|
|
|
|
| weight | int | Вес сервера для работы алгоритма балансирования по весу |
|
|
|
|
|
|
|
|
|
|
### Описание структуры сервера
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| address | string | Адрес сервера |
|
|
|
|
|
| check | string | Включены ли проверки |
|
|
|
|
|
| name | string | Имя сервера |
|
|
|
|
|
| port | int | Порт сервера |
|
|
|
|
|
| server_settings | [см. Описание структуры настроек](#описание-структуры-настроек) | Настройки сервера |
|
|
|
|
|
|
|
|
|
|
### Описание структуры фронтенда
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| backend | string | Имя бекенда, к которому подключен фронтенд |
|
|
|
|
|
| name | string | Имя фронтенда |
|
|
|
|
|
| bindings | []Struct{} [см. ниже](#описание-структуры-привязки-фронтенда) | Привязки фронтенда |
|
|
|
|
|
|
|
|
|
|
### Описание структуры привязки фронтенда
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| address | string | Адрес, к которому привязан фронтенд |
|
|
|
|
|
| name | string | Имя привязки |
|
|
|
|
|
| port | int | Порт привязки |
|
|
|
|
|
|
|
|
|
|
### Описание структуры узлов
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| backend_ip | string | IP адрес бекенда |
|
|
|
|
|
| compute_id | int | ID виртуальной машины |
|
|
|
|
|
| frontend_ip | string | IP адрес фронтенда |
|
|
|
|
|
| mgmt_ip | string | IP адрес |
|
|
|
|
|
| network_id | int | ID сети |
|
|
|
|
|
|
|
|
|
|
## Ограничение на наименование ресурса
|
|
|
|
|
Ресурс не должен содержать в названии символ `#`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
Пример вызова _resource_ функции **dynamix_lb**:
|
|
|
|
|
```terraform
|
|
|
|
|
resource "dynamix_lb" "lb" {
|
|
|
|
|
#id ресурсной группы для создания балансировщика
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
rg_id = 1111
|
|
|
|
|
|
|
|
|
|
#наименование load balancer
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
name = "tf-test-lb"
|
|
|
|
|
|
|
|
|
|
#id внешней сети
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
|
|
|
|
|
#тип - целое число
|
|
|
|
|
extnet_id = 6
|
|
|
|
|
|
|
|
|
|
#id виртуальной сети
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#id внешней сети и id виртуальной сети не могут быть одновременно = 0
|
|
|
|
|
#тип - целое число
|
|
|
|
|
vins_id = 758
|
|
|
|
|
|
|
|
|
|
#флаг запуска load balancer
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#если load balancer был в статусе "stopped" (start = false),
|
|
|
|
|
#то для успешного старта, он должен быть доступен (enable = true)
|
|
|
|
|
#по умолчанию - true
|
|
|
|
|
#тип - булев
|
|
|
|
|
start = true
|
|
|
|
|
|
|
|
|
|
#позволяет создать схему отказоустройчивой LB
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
#ha_mode = true
|
|
|
|
|
|
|
|
|
|
#описание
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#descс= "temp super lb for testing tf provider"
|
|
|
|
|
|
|
|
|
|
#флаг доступности load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - булев
|
|
|
|
|
#enable = true
|
|
|
|
|
|
|
|
|
|
#флаг перезапуска load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#перезагрузка срабатывает только при изменении флага с false на true
|
|
|
|
|
#тип - булев
|
|
|
|
|
#restart = false
|
|
|
|
|
|
|
|
|
|
#флаг сброса конфигурации load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#сброс срабатывает только при изменении флага с false на true
|
|
|
|
|
#тип - булев
|
|
|
|
|
#config_reset = false
|
|
|
|
|
|
|
|
|
|
#флаг моментального удаления load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#применяется при выполнении команды terraform destroy
|
|
|
|
|
#по умолчанию - false
|
|
|
|
|
#тип - булев
|
|
|
|
|
#permanently = false
|
|
|
|
|
|
|
|
|
|
#флаг восстановления load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#восстановить можно load balancer, удаленным с флагом permanently = false
|
|
|
|
|
#тип - булев
|
|
|
|
|
#restore = true
|
|
|
|
|
|
|
|
|
|
#флаг используемый при рестарте load balancer
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию - true, при данном значении рестарт производится на обоих нодах в HA mode
|
|
|
|
|
#тип - булев
|
|
|
|
|
#safe = true
|
|
|
|
|
|
|
|
|
|
#пользовательские значения sysctl для LB
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - список мап
|
|
|
|
|
#sysctl_params = [{text = "1", text = "some"}]
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова **dynamix_lb** в переменной `dynamix_lb.lb` будут сохранены возвращаемые значения.
|