VK Data Platform logo
Помощь
Обновлена 2 октября 2026 г. в 17:29

Ввод нового узла в кластер Kubernetes в Standalone

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

В этой инструкции разметка узла выполняется через командную строку, а переконфигурация ресурсов — через панель диагностики. Вариант ввода узла через командную строку описан в документе Руководство по установке в разделе Установка Standalone → Ввод узла в эксплуатацию.

Режимы использования узла

Узел кластера Kubernetes используется в одном из двух режимов:

  • managed — узел обслуживается Data Platform: на нем размещаются ее сервисы, ресурсы узла учитываются в квотах. Режим задается лейблом data.vkcs.cloud/schedule=true.
  • unmanaged — узел не обслуживается Data Platform: ее сервисы на узле не размещаются. Режим предназначен для узлов под произвольные Helm-чарты. Режим задается лейблом data.vkcs.cloud/unmanaged=true.

Параметры разметки узла

По разметке Data Platform определяет, как использовать узел: размещать ли на нем свои сервисы, учитывать ли его ресурсы в квотах, какие на нем есть диски и GPU.

Лейблы schedule и unmanaged задают режим использования узла. Остальные параметры уточняют конфигурацию узла: соответствие дисков storage class (классам хранилища Kubernetes), наличие GPU, учет root-диска в квотах. Они применяются в зависимости от назначения узла и его оборудования.

Возможные параметры разметки приведены в таблице 1.

Таблица 1 — Параметры разметки узла

Параметр

Тип

Значение

Описание

data.vkcs.cloud/schedule

Лейбл

true / false

  • true — узел предназначен для размещения сервисов Data Platform, его ресурсы учитываются в квотах;
  • false — узел выводится из эксплуатации: сервисы на нем не размещаются, ресурсы не учитываются в квотах

data.vkcs.cloud/unmanaged

Лейбл

true

Узел не обслуживается Data Platform: сервисы на нем не размещаются. Используется для узлов под произвольные Helm-чарты

data.vkcs.cloud/ssd, data.vkcs.cloud/hdd, data.vkcs.cloud/nvme

Лейбл

true

На узле есть диски соответствующего типа: SSD, HDD, NVMe. Используются для размещения подов, которым требуется конкретный тип диска

data.vkcs.cloud/gpu

Лейбл

true

На узле есть GPU. Используется для размещения подов, которым требуется GPU

data.vkcs.cloud/disk-types

Аннотация

JSON-объект

Определяет, к какому storage class относится каждый диск узла. Без аннотации диски узла не учитываются в квотах

data.vkcs.cloud/exclude-root-disk

Аннотация

true / false

  • true — root-диск узла не учитывается в квотах (значение по умолчанию);
  • false — root-диск учитывается в квотах

data.vkcs.cloud/disk-type-any-alias

Аннотация

Имя storage class

Неразмеченные диски узла учитываются в квотах под указанным storage class. Если аннотация не задана, неразмеченные диски не учитываются в квотах

Ввод узла в managed-режиме

Для ввода узла в managed-режиме:

  1. Разметьте узел лейблами и аннотациями.
  2. Запустите переконфигурацию ресурсов кластера.
  3. Проверьте результат.

Разметка узла

  1. Подключитесь к деплой-ноде по SSH.

  2. Получите имя нового узла:

    $ kubectl get nodes

    Имя узла указано в столбце NAME вывода команды.

  3. Установите лейбл schedule:

    $ kubectl label node <УЗЕЛ> data.vkcs.cloud/schedule=true --overwrite

    Здесь <УЗЕЛ> — имя узла из вывода команды kubectl get nodes.

  4. (Опционально) Если на узле есть диски, разметьте их:

    1. Подключитесь к новому узлу по SSH.

    2. Получите имена дисков нового узла:

      $ lsblk

      Имена дисков указаны в столбце NAME вывода команды.

    3. Вернитесь в консоль на деплой-ноду.

    4. Укажите, к какому storage class относится каждый диск узла:

      $ kubectl annotate node <УЗЕЛ> data.vkcs.cloud/disk-types='{"<ДИСК_1>":"<КЛАСС_ХРАНИЛИЩА_1>","<ДИСК_2>":"<КЛАСС_ХРАНИЛИЩА_2>"}' --overwrite

      Здесь:

      • <УЗЕЛ> — имя узла из вывода команды kubectl get nodes;
      • <ДИСК_1>, <ДИСК_2> — имена дисков из столбца NAME вывода команды lsblk, например sda, sdb, nvme0n1;
      • <КЛАСС_ХРАНИЛИЩА_1>, <КЛАСС_ХРАНИЛИЩА_2> — имена storage class, соответствующие дискам, например ceph-ssd, lvm-localpv.
    5. Пометьте узел лейблами по типам дисков — по ним Data Platform размещает поды, которым требуется конкретный тип диска:

      $ kubectl label node <УЗЕЛ> data.vkcs.cloud/ssd=true data.vkcs.cloud/nvme=true --overwrite
  5. (Опционально) Если на узле есть GPU, пометьте его лейблом gpu:

    $ kubectl label node <УЗЕЛ> data.vkcs.cloud/gpu=true --overwrite

Запуск переконфигурации ресурсов

  1. В браузере перейдите в панель диагностики по адресу https://<ДОМЕН_ЛК>/admin, где <ДОМЕН_ЛК> — домен веб-интерфейса Data Platform. Пример: https://lk-00-00.dp.ru/admin.

    Подробнее о панели — в разделе ссылка.

  2. В поле Поиск экземпляра введите идентификатор любого экземпляра сервиса и нажмите кнопку поиска. Переконфигурация ресурсов применяется ко всему Kubernetes-кластеру, поэтому можно выбрать любой экземпляр.

    Идентификатор экземпляра отображается в поле ID экземпляра на вкладке Общая информация в разделе Data Platform → Экземпляры сервисов.

  3. На странице экземпляра нажмите Переконфигурация ресурсов k8s.

    Дождитесь появления зеленой отметки об успешном завершении операции.

Проверка результата

  1. На странице экземпляра в панели диагностики ознакомьтесь с карточкой Квоты Kubernetes-кластера: квоты должны увеличиться. Часть CPU и RAM резервируется под системные сервисы и не попадает в квоты, поэтому значения квот меньше полных ресурсов нового узла. Чтобы увидеть полный список квот, нажмите Подробнее.

  2. На вкладке Действия администратора убедитесь, что операция переконфигурации завершилась успешно.

  3. Вернитесь в консоль на деплой-ноду и проверьте, что на узел добавлено ограничение (taint) data.vkcs.cloud/nodegroup=standalone:NoSchedule:

    $ kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.taints}{"\n"}{end}'

    Это ограничение запрещает размещать на узле сервисы, не входящие в состав Data Platform. Ограничение автоматически добавляется при переконфигурации.

Ввод узла в unmanaged-режиме

  1. Подключитесь к деплой-ноде по SSH.

  2. Получите имя нового узла:

    $ kubectl get nodes

    Имя узла указано в столбце NAME вывода команды.

  3. Установите лейбл unmanaged:

    $ kubectl label node <УЗЕЛ> data.vkcs.cloud/unmanaged=true --overwrite

    Здесь <УЗЕЛ> — имя узла из вывода команды kubectl get nodes.

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