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.
13 KiB
13 KiB
Resource функция dynamix_lb служит для управления балансировщиком нагрузки (load balancer). Балансировщики нагрузки служат для равномерного распределения сетевой нагрузки между подключенными к ним сервисами.
Аргументы
Resource функция dynamix_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 для балансировщика, для применения настроек, необходимо перезагрузить балансировщик |
Возвращаемые значения
В случае успешного выполнения resource функция dynamix_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 виртуальной сети |
Описание структуры 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:
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
будут сохранены возвращаемые значения.