You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
14 KiB
14 KiB
Функция доступна в провайдере версии 3.1 и выше.
Resource функция decort_lb служит для управления балансировщиком нагрузки (load balancer). Балансировщики нагрузки служат для равномерного распределения сетевой нагрузки между подключенными к ним сервисами.
Аргументы
Resource функция decort_lb принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
|---|---|---|---|
| rg_id | int | ✔️ | ID ресурсной группы |
| name | string | ✔️ | Название балансировщика |
| start | bool | ✔️ | Флаг запуска балансировщика. По умолчанию - true. Eсли load balancer был в статусе "stopped" (start = false), то для успешного старта, он должен быть доступен (enable = true) |
| extnet_id | int | ❌ | ID внешней сети. extnet_id и vins_id не могут быть одновременно равны 0 |
| vins_id | int | ❌ | ID виртуальной сети. extnet_id и vins_id не могут быть одновременно равны 0 |
| desc | string | ❌ | Описание балансировщика |
| enable | bool | ❌ | Флаг доступности балансировщика |
| restart | bool | ❌ | Флаг перезагрузки балансировщика. Можно использовать только на созданном ресурсе. По умолчанию - false. Перезагрузка происходит только при смене флага с false на true |
| safe | bool | ❌ | Флаг перезапуска первичных и вторичных узлов последовательно в режиме высокой доступности (HA mode) |
| config_reset | bool | ❌ | Флаг сброса конфигурации балансировщика. По умолчанию - false. Сброс происходит только при изменении флага с false на true |
| ha_mode | bool | ❌ | Использовать высокодоступную схему для развертывания LB |
| permanently | bool | ❌ | Флаг моментального удаления балансировщика из платформы. по умолчанию - false. При необходимости, после изменения значения флага, необходимо выполнить terraform apply для изменения значения флага в состоянии терраформа, а после этого - terraform destroy |
| restore | bool | ❌ | Флаг восстановления балансировщика после удаления. Восстановить возможно только балансировщики, удаленные с флагом permanently равным false. Предварительно, необходимо импортировать удаленный ресурс и изменить значение флага. После этого - выполнить terraform apply. |
| sysctl_params | []map[string]interface{} | ❌ | Пользовательские значения sysctl для балансировщика, для применения настроек, необходимо перезагрузить балансировщик |
| zone_id | int | ❌ | Идентификатор экземпляра zone |
Возвращаемые значения
В случае успешного выполнения resource функция decort_lb возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
|---|---|---|
| ha_mode | bool | Флаг, показывающий, включен ли режим haproxy |
| backends | []Struct{} см. ниже | Список бекендов |
| 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 виртуальной сети |
| zone_id | int | Идентификатор экземпляра zone |
Описание структуры 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 функции decort_lb:
resource "decort_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, без возможности восстановления
#опциональный параметр
#по умолчанию - false
#тип - булев
#используется при удалении
#permanently = false
#флаг восстановления load balancer
#опциональный параметр
#восстановить можно load balancer, удаленным с флагом permanently = false
#тип - булев
#тип - булев
#используется при обновлении
#restore = true
#флаг используемый при рестарте load balancer
#опциональный параметр
#при значении "true" рестарт производится на обоих нодах в HA mode
#по умолчанию - true
#тип - булев
#тип - булев
#используется при обновлении
#safe = true
#пользовательские значения sysctl для LB
#опциональный параметр
#тип - список мап
#используется при создании и обновлении
#sysctl_params = [{ key1 = "value1", key2 = "value2" }]
#идентификатор экземпляра zone
#опциональный параметр
#тип - целое число
#используется при создании и обновлении
#zone_id = 1111
}
После успешного завершения такого вызова decort_lb в переменной decort_lb.lb будут сохранены возвращаемые значения.