Перейти к содержанию

Настроить метки виртуального кластера

Примечание

Действия выполняются пользователем с ролью Администратор ВЦОД

Метки (labels) — пары ключ-значение формата key=value, которые описывают атрибуты объектов кластера. Они играют ключевую роль в механизме планирования размещения пользовательских ресурсов (ВМ) на узлах.

Основные понятия:

  • Обычные метки — создаются и назначаются пользователями.

  • Системные метки — используются системой, недоступны для создания и назначения вручную. Например, метка активации сервисного обслуживания system_drain_node=yes. Подробная информация о данной метке описана в статье CLI.Руководство администратора/Сервисное обслуживание.

  • Игнорируемые метки — метки, существующие в системе, но не учитываемые при планировании. Метка может игнорироваться в контексте ВЦОД и виртуального кластера. Планировщик не учитывает игнорируемые метки во время поиска узлов по ним.

  • Делегирование метки — предоставление возможности использовать метку объектам: ВЦОД или виртуальному кластеру.

Метки могут быть назначены:

Администратор ВЦОД управляет метками в виртуальном кластере.

Чтобы просмотреть метки, отданные во ВЦОД, введите команду

scheduler labels ns show [--filter <FILTER>]

где filter — фильтрация меток. Возможные значения:

  • a — all, все метки;
  • i — ignored, игнорируемые метки;
  • u — unignored, все метки, кроме игнорируемых.

Внимание

Пользователи могут видеть метки только ВЦОД, в котором они находятся.
При попытке запроса информации о других ВЦОД будет выдаваться ошибка.
Исключение — ВЦОД управления


Ограничения работы с метками в виртуальном кластере

  • При создании виртуального кластера в него автоматически добавляется метка сервисного обслуживания system_drain_node=yes при ее наличии в родительском ВЦОД.
  • В виртуальный кластер можно добавить только метки данного ВЦОД.
  • В виртуальный кластер нельзя добавить метки, которые игнорируются в данном ВЦОД.
  • Нельзя удалить все метки из виртуального кластера.
  • При удалении виртуального кластера все записи о делегированных ему метках удаляются.
  • Нельзя открепить метки, если по ним размещены ресурсы.

  • При указании в nodeSelector меток, игнорируемых в кластере, ВЦОД или виртуальном кластере, будет выведена ОШИБКА.

  • Системная метка system_drain_node=yes запрещает размещение ресурсов на соответствующих узлах.
  • При обновлении ресурса изменение nodeSelector невозможно.

Операции с метками в виртуальном кластере

Примечание

Далее в тексте понятие Текущий ВЦОД — это ВЦОД, в котором выполняется команда

  1. Добавить метки в заданные виртуальные кластеры текущего ВЦОД

    scheduler labels vcluster add --vcluster <VCLUSTER>
                                  --labels <LABELS>
    

    где

    • vcluster — список имен виртуальных кластеров. При значении * метка устанавливается на все виртуальные кластеры текущего ВЦОД;
    • labels — список меток для добавления в виртуальные кластеры. Задается в формате key=value.
  2. Просмотреть метки виртуальных кластеров

    scheduler labels vcluster show [--vcluster <VCLUSTER>]
                                   [--filter <FILTER>]
    

    где

    • vcluster — список имен виртуальных кластеров для просмотра их меток. При значении * отобразятся все метки на всех виртуальных кластерах;
    • filter — фильтрация меток. Возможные значения:

      • a — all, все метки;
      • i — ignored, игнорируемые метки;
      • u — unignored, все метки, кроме игнорируемых.
  3. Просмотреть метки со списками виртуальных кластеров, в которые они делегированы

    scheduler labels vcluster list [--vcluster <VCLUSTER>]
                                   [--filter <FILTER>]
    

    где

    • vcluster — список имен виртуальных кластеров для просмотра делегированных им меток. При значении * отобразятся все делегированные метки на всех виртуальных кластерах;
    • filter — фильтрация меток. Возможные значения:

      • a — all, все метки;
      • i — ignored, игнорируемые метки;
      • u — unignored, все метки, кроме игнорируемых.
  4. Удалить метки из виртуальных кластеров текущего ВЦОД

    Внимание

    • Из виртуального кластера можно удалить только метки, которые делегированы в текущий ВЦОД.
    • Нельзя удалить метки, если их используют ВМ
    scheduler labels vcluster del --vcluster <VCLUSTER>
                                  --labels <LABELS>
    

    где

    • vcluster — список имен виртуальных кластеров для просмотра делегированных им меток. При значении * отобразятся все делегированные метки на всех виртуальных кластерах;
    • labels — список меток для удаления. Задается в формате key=value.

Ограничения taints и допуски tolerations

Mеханизмы ограничений taints и допусков tolerations позволяют управлять процессом размещения ВМ на узлах.

Ограничения taints — это метки, применяемые к узлам, которые предотвращают размещение ВМ без необходимых разрешений.

Ограничение имеет формат key=value:effect.

effect определяет поведение планировщика при отсутствии соответствующего допуска у ВМ. Возможные значения effect:

  • NoSchedule — предотвращает размещение новых виртуальных машин без необходимого допуска на узел. ВМ, уже запущенные на узле, продолжат работать;
  • NoExecute— предотвращает размещение новых виртуальных машин без необходимого допуска на узел. ВМ, уже запущенные на узле, будут остановлены.

Допуски tolerations — это параметры виртуальных машин, которые позволяют им размещаться на узлах с ограничениями. Допуск должен соответствовать введенному ограничению taints на узле key=value:effect, дополнительно учитывается оператор operator.
Возможные значения operator для допусков:

  • Equal — требует точного совпадения ключа и значения;
  • Exists — требует наличия ограничения с указанным ключом, независимо от значения.

Управлять ограничениями taints

  1. Добавить необходимые ограничения на узлы

    scheduler vcluster taints add --name <NAME>
                                  --uuids <UUIDS>
                                  --taints <TAINTS>
    

    где

    • name — имя виртуального кластера;
    • uuids — перечень узлов, которым назначается ограничение ;
    • taints — ограничение вида key=value:effect. Возможные значения effect:

      • NoSchedule — предотвращает размещение новых виртуальных машин без необходимого допуска на узел. ВМ, уже запущенные на узле, продолжат работать;
      • NoExecute— предотвращает размещение новых виртуальных машин без необходимого допуска на узел. ВМ, уже запущенные на узле, будут остановлены.
  2. Удалить ограничения taints

    scheduler vcluster taints del --name <NAME>
                                  --uuids <UUIDS>
                                  --taints <TAINTS>
    

    где

    • name — имя виртуального кластера;
    • uuids — перечень узлов, с которых удаляется ограничение;
    • taints — ограничение вида key=value:effect.

Примечание

Примеры использования описаны в статье Как использовать ограничения taints и допуски tolerations


Термины и определения содержатся в статьях: