[Документация Yandex Cloud](../../index.md) > [Yandex Network Load Balancer](../index.md) > [Пошаговые инструкции](index.md) > Сетевые балансировщики > Изменить настройки балансировщика

# Изменить настройки сетевого балансировщика

{% note info %}

Задать тип балансировщика (внешний или внутренний) можно только при его создании. В дальнейшем изменить тип балансировщика нельзя.

{% endnote %}

После создания сетевого балансировщика вы можете:

* [Изменить имя и описание балансировщика](#change-name-and-description).
* [Изменить метки балансировщика](#change-labels).
* [Изменить целевую группу или настройки проверки ее состояния](#change-target-group).
* [Подключить целевую группу](#add-target-group).
* [Добавить обработчик](#add-listener).

## Изменить имя и описание балансировщика {#change-name-and-description}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите в сервис **Network Load Balancer**.
    1. Выберите сетевой балансировщик и нажмите кнопку **Редактировать** в верхней части страницы.
    1. Задайте новые имя и описание балансировщика.
    1. Нажмите кнопку **Редактировать**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы изменить имя и описание сетевого балансировщика:

    1. Узнайте имя или идентификатор балансировщика, получив [список сетевых балансировщиков в каталоге](load-balancer-list.md#list).

    1. Посмотрите текущие имя (`name`) и описание (`description`) балансировщика:

        ```bash
        yc load-balancer network-load-balancer get <имя_или_идентификатор_балансировщика>
        ```

    1. Посмотрите описание команды CLI для изменения конфигурации балансировщика:

        ```bash
        yc load-balancer network-load-balancer update --help
        ```

    1. Задайте новое имя и описание балансировщика:

        ```bash
        yc load-balancer network-load-balancer update <имя_или_идентификатор_балансировщика> \
           --new-name=<новое_имя_балансировщика> \
           --description=<новое_описание_балансировщика>
        ```

- Terraform {#tf}

    1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

        О том, как создать такой файл, в разделе [Создать сетевой балансировщик](load-balancer-create.md).

        Полный список доступных для изменения полей конфигурации сетевого балансировщика в [документации провайдера](../../terraform/resources/lb_network_load_balancer.md).

    1. Измените в описании сетевого балансировщика значение параметров `name` и `description`:

        ```hcl
        resource "yandex_lb_network_load_balancer" "foo" {
          name        = "<имя_балансировщика>"
          description = "<описание_балансировщика>"
          ...
        ```

    1. Проверьте корректность настроек.

        1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
        1. Выполните команду:
        
           ```bash
           terraform validate
           ```
        
           Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    1. Подтвердите изменение ресурсов.

        1. Выполните команду для просмотра планируемых изменений:
        
           ```bash
           terraform plan
           ```
        
           Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
        
        1. Если вас устраивают планируемые изменения, внесите их:
           1. Выполните команду:
        
              ```bash
              terraform apply
              ```
        
           1. Подтвердите изменение ресурсов.
           1. Дождитесь завершения операции.

- API {#api}

    Воспользуйтесь методом API [update](../api-ref/NetworkLoadBalancer/update.md) и передайте в запросе:

    * Идентификатор балансировщика в параметре `networkLoadBalancerId`. Чтобы узнать идентификатор, [получите список сетевых балансировщиков в каталоге](load-balancer-list.md#list).
    * Новое имя в параметре `name`.
    * Новое описание в параметре `description`.
    * Список изменяемых полей конфигурации кластера в параметре `updateMask` (в данном случае — `name`, `description`).

    {% note warning %}
    
    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре `updateMask` (одной строкой через запятую).
    
    {% endnote %}

{% endlist %}

## Изменить метки балансировщика {#change-labels}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите в сервис **Network Load Balancer**.
    1. Выберите сетевой балансировщик и нажмите кнопку **Редактировать** в верхней части страницы.
    1. Измените метки балансировщика.
    1. Нажмите кнопку **Редактировать**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы изменить метки сетевого балансировщика:

    1. Посмотрите текущие метки и их значения (`labels`) балансировщика:

        ```bash
        yc load-balancer network-load-balancer get <имя_или_идентификатор_балансировщика>
        ```

        Идентификатор и имя балансировщика можно получить со [списком сетевых балансировщиков в каталоге](load-balancer-list.md#list).

    1. Посмотрите описание команды CLI для изменения конфигурации балансировщика:

        ```bash
        yc load-balancer network-load-balancer update --help
        ```

    1. Задайте новые значения для меток балансировщика:

        ```bash
        yc load-balancer network-load-balancer update <имя_или_идентификатор_балансировщика> \
           --labels <ключ_1>=<значение_1>,<ключ_2>=<значение_2>,...
        ```

- Terraform {#tf}

    1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

        О том, как создать такой файл, в разделе [Создать сетевой балансировщик](load-balancer-create.md).

        Полный список доступных для изменения полей конфигурации сетевого балансировщика в [документации провайдера](../../terraform/resources/lb_network_load_balancer.md).

    1. Измените в описании сетевого балансировщика значение параметров `name` и `description`:

        ```hcl
        resource "yandex_lb_network_load_balancer" "foo" {
          ...
          labels = {
            <ключ_1> = "<значение_1>"
            <ключ2_> = "<значение_2>"
            ...
          }
          ...
        ```

    1. Проверьте корректность настроек.

        1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
        1. Выполните команду:
        
           ```bash
           terraform validate
           ```
        
           Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    1. Подтвердите изменение ресурсов.

        1. Выполните команду для просмотра планируемых изменений:
        
           ```bash
           terraform plan
           ```
        
           Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
        
        1. Если вас устраивают планируемые изменения, внесите их:
           1. Выполните команду:
        
              ```bash
              terraform apply
              ```
        
           1. Подтвердите изменение ресурсов.
           1. Дождитесь завершения операции.

- API {#api}

    Воспользуйтесь методом API [update](../api-ref/NetworkLoadBalancer/update.md) и передайте в запросе:

    * Идентификатор балансировщика в параметре `networkLoadBalancerId`. Чтобы узнать идентификатор, [получите список сетевых балансировщиков в каталоге](load-balancer-list.md#list).
    * Новые значения меток в параметре `labels`.
    * Список изменяемых полей конфигурации кластера в параметре `updateMask` (в данном случае — `labels`).

    {% note warning %}
    
    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре `updateMask` (одной строкой через запятую).
    
    {% endnote %}

{% endlist %}

## Изменить целевую группу или настройки проверки ее состояния {#change-target-group}

{% list tabs group=instructions %}

- Консоль управления {#console}

    1. Перейдите в сервис **Network Load Balancer**.
    1. Выберите сетевой балансировщик и нажмите кнопку **Редактировать** в верхней части страницы.
    1. В блоке **Целевые группы** выберите в выпадающем списке новую целевую группу или [создайте новую](target-group-create.md).
    1. Чтобы изменить настройки проверки состояния целевой группы:
        1. В блоке нужной целевой группы нажмите кнопку **Настроить**.
        1. Укажите новые параметры проверки состояния целевой группы.
        1. Нажмите кнопку **Применить**.
    1. Нажмите кнопку **Редактировать**.

- CLI {#cli}

    Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

    По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

    Чтобы изменить целевую группу или настройки проверки ее состояния:

    1. Посмотрите описание команды CLI для изменения конфигурации балансировщика:

        ```bash
        yc load-balancer network-load-balancer update --help
        ```

    1. Задайте новый идентификатор целевой группы и настройки проверки ее состояния:

        ```bash
        yc load-balancer network-load-balancer update <имя_или_идентификатор_балансировщика> \
           --target-group target-group-id=<идентификатор_целевой_группы>,`
                         `healthcheck-name=<имя_проверки_состояния>,`
                         `healthcheck-interval=<интервал_выполнения_проверок>s,`
                         `healthcheck-timeout=<время_ожидания_ответа>s,`
                         `healthcheck-unhealthythreshold=<количество_проваленных_проверок_для_статуса_Unhealthy>,`
                         `healthcheck-healthythreshold=<количество_успешных_проверок_для_статуса_Healthy>,`
                         `healthcheck-tcp-port=<TCP-порт>,`
                         `healthcheck-http-port=<HTTP-порт>,`
                         `healthcheck-http-path=<адрес_URL>
        ```

        Где:

        * `--target-group` — параметры целевой группы и настройки [проверки состояния её ресурсов](../concepts/health-check.md):
            * `target-group-id` — идентификатор целевой группы.
        
              Чтобы узнать идентификатор, [получите](target-group-list.md#list) список целевых групп в каталоге.
        
            * `healthcheck-name` — имя проверки состояния ресурсов.
            * `healthcheck-interval` — интервал выполнения проверок состояния в секундах. Возможные значения: от `1s` до `60s`. Интервал должен быть больше времени ожидания минимум на 1 секунду. 
            * `healthcheck-timeout` — время ожидания ответа в секундах. Возможные значения: от `1s` до `60s`.
            * `healthcheck-unhealthythreshold` — количество проваленных проверок, после которого на виртуальную машину перестанет подаваться трафик. Возможные значения: от `2` до `10`.
            * `healthcheck-healthythreshold` — количество успешных проверок, после которого виртуальная машина будет считаться готовой к приему трафика. Возможные значения: от `2` до `10`.
            * `healthcheck-tcp-port` — порт для проверок по протоколу TCP. Возможные значения: от `1` до `32767`.
            * `healthcheck-http-port` — порт для проверок по протоколу HTTP. Возможные значения: от `1` до `32767`.
            * `healthcheck-http-path` — адрес URL, по которому будут выполняться проверки по протоколу HTTP.
        
            Указывать одновременно `healthcheck-tcp-port` и `healthcheck-http-port` нельзя.
        
            {% note warning %}
            
            Для параметров `healthcheck-interval` и `healthcheck-timeout` необходимо указывать значение в формате `<время_в_секундах>s`, например `20s`.
            
            {% endnote %}

        Идентификатор и имя балансировщика можно получить со [списком сетевых балансировщиков в каталоге](load-balancer-list.md#list).

- Terraform {#tf}

    1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

        О том, как создать такой файл, в разделе [Создать сетевой балансировщик](load-balancer-create.md).

        Полный список доступных для изменения полей конфигурации сетевого балансировщика в [документации провайдера](../../terraform/resources/lb_network_load_balancer.md).

    1. Измените в описании сетевого балансировщика идентификатор целевой группы и настройки проверки ее состояния в блоке `attached_target_group`:

        ```hcl
        resource "yandex_lb_network_load_balancer" "foo" {
          name = "<имя_балансировщика>"
          ...
          attached_target_group {
            target_group_id = "<идентификатор_целевой_группы>"
            healthcheck {
              name = "<имя_проверки_состояния>"
              http_options {
                port = <номер_порта>
                path = "<адрес_URL>"
              }
            }
          }
          ...
        }
        ```

        Где:

        * `name` — имя сетевого балансировщика.
        * `attached_target_group` — описание параметров целевой группы для сетевого балансировщика:
            * `target_group_id` — идентификатор целевой группы.

              Чтобы узнать идентификатор, [получите](target-group-list.md#list) список целевых групп в каталоге.

            * `healthcheck` — описание параметров проверки состояния. Укажите имя, порт из диапазона от `1` до `32767` и путь, по которому будут выполняться проверки.

    1. Проверьте корректность настроек.

        1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
        1. Выполните команду:
        
           ```bash
           terraform validate
           ```
        
           Если в файлах конфигурации есть ошибки, Terraform на них укажет.

    1. Подтвердите изменение ресурсов.

        1. Выполните команду для просмотра планируемых изменений:
        
           ```bash
           terraform plan
           ```
        
           Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
        
        1. Если вас устраивают планируемые изменения, внесите их:
           1. Выполните команду:
        
              ```bash
              terraform apply
              ```
        
           1. Подтвердите изменение ресурсов.
           1. Дождитесь завершения операции.

- API {#api}

    Воспользуйтесь методом API [update](../api-ref/NetworkLoadBalancer/update.md) и передайте в запросе:

    * Идентификатор балансировщика в параметре `networkLoadBalancerId`. Чтобы узнать идентификатор, [получите список сетевых балансировщиков в каталоге](load-balancer-list.md#list).
    * Идентификатор целевой группы и настройки проверки ее состояния в параметре `attachedTargetGroups`.

      Чтобы узнать идентификатор, [получите](target-group-list.md#list) список целевых групп в каталоге.

    * Список изменяемых полей конфигурации кластера в параметре `updateMask` (в данном случае — `attachedTargetGroups`).

    {% note warning %}
    
    Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре `updateMask` (одной строкой через запятую).
    
    {% endnote %}

{% endlist %}

## Подключить целевую группу {#add-target-group}

Чтобы подключить целевую группу, воспользуйтесь [инструкцией](target-group-attach.md).

## Добавить обработчик {#add-listener}

Чтобы добавить обработчик, воспользуйтесь [инструкцией](listener-add.md).