Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for Redis
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Изменение настроек кластера и базы данных
    • Подключение к базе данных
      • Подготовка к подключению
      • Подключение к нешардированному кластеру
      • Подключение к шардированному кластеру
    • Остановка и запуск кластера
    • Обновление версии Redis
    • Управление хостами кластера
    • Управление шардами
    • Управление резервными копиями
    • Переключение мастера
    • Мониторинг состояния кластера и хостов
    • Просмотр логов кластера
    • Удаление кластера
  • Практические руководства
    • Хранение сессий PHP в Managed Service for Redis
    • Миграция базы данных в Managed Service for Redis
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
    • Сеть в Managed Service for Redis
    • Шардирование
    • Резервные копии
    • Репликация и отказоустойчивость
    • Поддерживаемые клиенты
    • Управление памятью в Managed Service for Redis
    • Доступные команды Managed Service for Redis
    • Квоты и лимиты
    • Типы хранилища
    • Техническое обслуживание
    • Настройки Redis
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • ResourcePresetService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • addShard
        • backup
        • create
        • delete
        • deleteHosts
        • deleteShard
        • get
        • getShard
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShards
        • move
        • rebalance
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • ResourcePreset
        • Overview
        • get
        • list
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
  1. Пошаговые инструкции
  2. Управление хостами кластера

Управление хостами кластера

Статья создана
Yandex Cloud
  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост

Вы можете добавлять и удалять хосты кластера, а также управлять их настройками.

Получить список хостов в кластере

Консоль управления
CLI
API
  1. Перейдите на страницу каталога и выберите сервис Managed Service for Redis.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Хосты.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы получить список хостов в кластере, выполните команду:

yc managed-redis host list \
   --cluster-name=<имя кластера>
+---------------------------------+--------------+------------+---------+--------+---------------+
|              NAME               |  CLUSTER ID  | SHARD NAME |  ROLE   | HEALTH |    ZONE ID    |
+---------------------------------+--------------+------------+---------+--------+---------------+
| rc1a-...caf.mdb.yandexcloud.net | c9qb2...0gg  | shard1     | MASTER  | ALIVE  | ru-central1-a |
| rc1c-...bgc.mdb.yandexcloud.net | c9qb2...0gg  | shard1     | REPLICA | ALIVE  | ru-central1-c |
+---------------------------------+--------------+------------+---------+--------+---------------+

Имя кластера можно запросить со списком кластеров в каталоге.

Воспользуйтесь методом API listHosts и передайте идентификатор кластера в параметре clusterId запроса.

Чтобы узнать идентификатор кластера, получите список кластеров в каталоге.

Добавить хост

Количество хостов в кластерах Managed Service for Redis ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Managed Databases.

Примечание

Публичный доступ к хостам можно настроить только для кластеров, созданных с включенной поддержкой TLS.

Консоль управления
CLI
Terraform
API

Чтобы добавить хост в кластере:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for Redis.

  2. Нажмите на имя нужного кластера и перейдите на вкладку Хосты.

  3. Нажмите кнопку Добавить хост.

  4. Укажите параметры хоста:

    • зону доступности;

    • подсеть (если нужной подсети в списке нет, создайте ее);

    • при необходимости настройте публичный доступ к хосту;

    • если вы добавляете хост в шардированный кластер, выберите шард.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы добавить хост в кластере:

  1. Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:

    yc vpc subnet list
    

    Результат:

    +-----------+-----------+------------+---------------+------------------+
    |     ID    |   NAME    | NETWORK ID |     ZONE      |      RANGE       |
    +-----------+-----------+------------+---------------+------------------+
    | b0cl69... | default-c | enp6rq7... | ru-central1-c | [172.16.0.0/20]  |
    | e2lkj9... | default-b | enp6rq7... | ru-central1-b | [10.10.0.0/16]   |
    | e9b0ph... | a-2       | enp6rq7... | ru-central1-a | [172.16.32.0/20] |
    | e9b9v2... | default-a | enp6rq7... | ru-central1-a | [172.16.16.0/20] |
    +-----------+-----------+------------+---------------+------------------+
    

    Если нужной подсети в списке нет, создайте ее.

  2. Посмотрите описание команды CLI для добавления хостов:

    yc managed-redis host add --help
    
  3. Выполните команду добавления хоста:

    yc managed-redis host add \
       --cluster-name=<имя кластера> \
       --host zone-id=<зона доступности>,`
             `subnet-id=<идентификатор подсети>
    

    Managed Service for Redis запустит операцию добавления хоста.

    Идентификатор подсети необходимо указать, если в зоне доступности больше одной подсети, в противном случае Managed Service for Redis автоматически выберет единственную подсеть. Имя кластера можно запросить со списком кластеров в каталоге.

    Если вы добавляете хост в шардированный кластер, укажите в параметре shard-name имя шарда, в который следует добавить хост.

Чтобы добавить хост в кластере:

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

    О том, как создать такой файл, см. в разделе Создание Redis-кластера.

  2. Добавьте к описанию кластера Managed Service for Redis блок host.

    resource "yandex_mdb_redis_cluster" "<имя кластера>" {
      ...
      host {
        zone      = "<зона доступности>"
        subnet_id = <идентификатор подсети>
      }
    }
    
  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

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

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Redis:

  • создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_redis_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Воспользуйтесь методом API addHosts и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Настройки нового хоста в одном или нескольких параметрах hostSpecs.

Важно

Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.

Изменить хост

Для каждого хоста в кластере Managed Service for Redis можно изменить настройки публичного доступа.

Примечание

Доступ к хостам из интернета через публичные IP-адреса возможен только в том случае, если кластер был создан с включенной поддержкой TLS.

Консоль управления
API

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

  1. Перейдите на страницу каталога и выберите сервис Managed Service for Redis.
  2. Нажмите на имя нужного кластера и выберите вкладку Хосты.
  3. Нажмите на значок в строке нужного хоста и выберите пункт Редактировать.
  4. Включите опцию Публичный доступ, если хост должен быть доступен извне Yandex Cloud.
  5. Нажмите кнопку Сохранить.

Чтобы изменить параметры хоста, воспользуйтесь методом API updateHosts и передайте в запросе:

  1. Идентификатор кластера, в котором нужно изменить хост, в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  2. Имя хоста, который нужно изменить, в параметре updateHostSpecs.hostName. Чтобы узнать имя, получите список хостов в кластере.
  3. Настройки публичного доступа к хосту в параметре updateHostSpecs.assignPublicIp.
  4. Приоритет хоста в параметре updateHostSpecs.replicaPriority.
  5. Список полей конфигурации кластера, подлежащих изменению, в параметре updateMask.

Важно

Этот метод API сбросит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask (одной строкой через запятую).

Важно

Если после добавления хоста к нему невозможно подключиться, убедитесь, что группа безопасности кластера настроена корректно для подсети, в которую помещен хост.

Удалить хост

Вы можете удалить хост из Redis-кластера, если он не является единственным хостом. Чтобы заменить единственный хост, сначала создайте новый хост, а затем удалите старый.

Если хост является мастером в момент удаления, Managed Service for Redis автоматически назначит мастером другую реплику.

Консоль управления
CLI
Terraform
API

Чтобы удалить хост из кластера:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for Redis.
  2. Нажмите на имя нужного кластера и выберите вкладку Хосты.
  3. В строке с нужным кластером нажмите на значок и выберите Удалить.
  4. В открывшемся окне включите опцию Я удаляю хост и нажмите кнопку Подтвердить.

Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы удалить хост из кластера, выполните команду:

yc managed-redis host delete <имя хоста> \
   --cluster-name=<имя кластера>

Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.

Чтобы удалить хост из кластера:

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

    О том, как создать такой файл, см. в разделе Создание Redis-кластера.

  2. Удалите из описания кластера Managed Service for Redis блок host.

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

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите удаление ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Redis:

  • создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_redis_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

Воспользуйтесь методом API deleteHosts и передайте в запросе:

  • Идентификатор кластера в параметре clusterId. Чтобы узнать идентификатор, получите список кластеров в каталоге.
  • Имя или массив имен удаляемых хостов в параметре hostNames.

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Получить список хостов в кластере
  • Добавить хост
  • Изменить хост
  • Удалить хост