Node-feature-discovery#
Node-feature-discovery (NFD) – инструмент, предназначенный для обнаружения аппаратных и системных характеристик узлов кластера. Он автоматически определяет особенности оборудования (например, наличие GPU, поддержку конкретных инструкций CPU, тип NIC) и конфигурации системы, а затем добавляет эту информацию в виде меток на узлы DropApp.
Основные задачи и возможности
Автоматические метки узлов: на основе обнаруженных признаков (например,
feature.node.kubernetes.io/cpu-cpuid.AESNI=true) NFD расставляет метки, которые можно использовать вnodeSelectorилиaffinityдля целевого размещения pod.Поддержка пользовательских правил обнаружения: позволяет определять собственные правила через CRD (
NodeFeatureRule,NodeFeatureGroup), чтобы выявлять особенности среды.Работа с различными типами особенностей:
Может обнаруживать:
характеристики CPU (SSE, AVX, AMD SEV и др.);
наличие GPU, FPGA;
сетевые возможности (SR-IOV, RDMA);
операционную систему и ядро.
Интеграция с workload: упрощает запуск приложений, требующих определенного оборудования («железа»), например, HPC, ML, телеком, за счет точного соответствия между требованиями pod и возможностями узла.
Гибкая архитектура: состоит из
master- иworker-компонентов, легко масштабируется и работает в любом окружении — bare metal, виртуализация, облако.
Примечание
Node-feature-discovery устанавливается по умолчанию с компонентом Node-management.
Конфигурация values#
Параметры Node-feature-discovery можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
featureGates – включение или отключение функциональных возможностей
checksumValuesOnly – аннотация rollout по контрольной сумме значений конфигурации
prometheus – параметры интеграции с Prometheus и сбора метрик
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полный путь к репозиторию образа Node-feature-discovery (NFD) |
|
|
Политика загрузки образа. |
|
|
Тег образа контейнера |
|
imagePullSecrets – Secret для загрузки образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список |
|
nameOverride – переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение базового имени ресурсов чарта для генерации имен |
|
fullnameOverride – полное переопределение имени чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Полное переопределение имени для всех создаваемых ресурсов чарта |
|
namespaceOverride – переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен вместо значения по умолчанию |
|
featureGates – включение или отключение функциональных возможностей#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация включения API |
|
checksumValuesOnly – аннотация rollout по контрольной сумме значений конфигурации#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Расчет контрольной суммы только значений конфигурации для аннотации |
|
priorityClassName – имя класса приоритета pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
postDeleteCleanup – очистка ресурсов после удаления чарта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение очистки объектов, созданных чартом, после удаления |
|
master – настройки компонента nfd-master#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение развертывания компонента |
|
|
Дополнительные аргументы командной строки для контейнера |
|
|
Дополнительные переменные окружения для контейнера |
|
|
Активация запуска контейнера в сетевом пространстве имен хоста |
|
|
Запуск контейнера с идентификаторами пользователей хоста. При |
|
|
Политика разрешения DNS для pod. |
|
|
YAML-конфигурация |
|
|
Порт, на котором обслуживается HTTP для метрик и эндпоинтов |
|
|
Имя экземпляра |
|
|
Интервал периодической синхронизации меток признаков; значение |
|
|
Список запрещенных пространств имен меток, которые |
|
|
Дополнительные разрешенные пространства имен меток. Метки с этими префиксами разрешены, даже если запрещены параметром |
|
|
Включение добавления |
|
|
Максимальное количество одновременных обновлений узлов |
|
|
Дополнительные аннотации для |
|
|
Количество реплик pod инструмента |
|
|
Параметры контекста безопасности pod |
|
|
Список init-контейнеров, запускаемых перед основными |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
Автоматическое создание |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Имя |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Активация автоматического создания ресурсов RBAC |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Включение создания |
|
|
Минимальное количество доступных pod при «добровольных» вытеснениях |
|
|
Политика вытеснения ( |
|
|
Включение развертывания |
|
|
Правила исходящего трафика ( |
|
|
Правила входящего трафика ( |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Настройки правила привязки ( |
|
|
Задержка в секундах перед первой стартовой проверкой |
|
|
Тайм-аут ожидания проверки запуска |
|
|
Интервал в секундах между проверками запуска |
|
|
Количество неудачных попыток проверки запуска |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
worker – настройки компонента nfd-worker#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение |
|
|
Объекты, используемые в качестве ссылок владельца ( |
|
|
Дополнительные аргументы командной строки для контейнера |
|
|
Дополнительные переменные окружения для контейнера |
|
|
Запуск контейнера в сетевом пространстве имен хоста |
|
|
Запуск контейнера с идентификаторами пользователей хоста. При |
|
|
Политика разрешения DNS для pod. |
|
|
YAML-конфигурация |
|
|
Порт, на котором обслуживается HTTP для метрик и эндпоинтов |
|
|
Аннотации, добавляемые к |
|
|
Параметры контекста безопасности pod |
|
|
Список init-контейнеров, запускаемых перед основными |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Автоматическое создание |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Имя |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Активация автоматического создания ресурсов RBAC |
|
|
Монтирование пути хоста |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Настройки правила привязки ( |
|
|
Имя |
|
|
Максимальное количество недоступных pod при обновлении |
|
|
Включение развертывания |
|
|
Правила исходящего трафика ( |
|
|
Правила входящего трафика ( |
|
topologyUpdater – настройки компонента nfd-topology-updater#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
YAML-конфигурация |
|
|
Включение |
|
|
Создание CRD |
|
|
Дополнительные аргументы командной строки для контейнера |
|
|
Дополнительные переменные окружения для контейнера |
|
|
Запуск контейнера в сетевом пространстве имен хоста |
|
|
Запуск контейнера с идентификаторами пользователей хоста. При |
|
|
Политика разрешения DNS для pod. |
|
|
Автоматическое создание |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Имя |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Активация автоматического создания ресурсов RBAC |
|
|
Порт, на котором обслуживается HTTP для метрик и эндпоинтов |
|
|
Путь на хосте к файлу конфигурации Kubelet |
|
|
Путь на хосте к сокету Kubelet для эндпоинта |
|
|
Интервал между обновлениями CR |
|
|
Пространство имен для отслеживания pod; |
|
|
Путь к каталогу состояния Kubelet для отслеживания файлов состояния и контрольных точек; пустое значение отключает отслеживание состояния Kubelet |
|
|
Параметры контекста безопасности pod |
|
|
Список init-контейнеров, запускаемых перед основными |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID пользователя для запуска контейнера; значение |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Аннотации, добавляемые к |
|
|
Настройки правила привязки ( |
|
|
Вычисление и передача отпечатка (fingerprint) набора pod в объекты |
|
|
Включение развертывания |
|
|
Правила исходящего трафика ( |
|
|
Правила входящего трафика ( |
|
gc – настройки компонента сборки устаревших ресурсов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение компонента |
|
|
Дополнительные аргументы командной строки для контейнера |
|
|
Дополнительные переменные окружения для контейнера |
|
|
Запуск контейнера в сетевом пространстве имен хоста |
|
|
Запуск контейнера с идентификаторами пользователей хоста. При |
|
|
Количество реплик pod инструмента |
|
|
Политика разрешения DNS для pod. |
|
|
Автоматическое создание |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Имя |
|
|
Активация автоматического создания ресурсов RBAC |
|
|
Интервал между периодическими запусками сборщика устаревших ресурсов |
|
|
Параметры контекста безопасности pod |
|
|
Список init-контейнеров, запускаемых перед основными |
|
|
Задержка в секундах перед первой проверкой работоспособности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Интервал в секундах между проверками работоспособности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Задержка в секундах перед первой проверкой готовности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Интервал в секундах между проверками готовности |
|
|
Количество успешных попыток для подтверждения готовности |
|
|
Количество неудачных попыток до перевода контейнера в статус |
|
|
Ограничение ресурсов памяти для контейнера |
|
|
Запрашиваемые ресурсы CPU для контейнера |
|
|
Запрашиваемые ресурсы памяти для контейнера |
|
|
Порт, на котором обслуживается HTTP для метрик и эндпоинтов |
|
|
Селектор узлов для планирования pod |
|
|
|
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|
|
Аннотации, добавляемые к |
|
|
Настройки правила привязки ( |
|
|
Включение создания |
|
|
Минимальное количество доступных pod при «добровольных» вытеснениях |
|
|
Политика вытеснения ( |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Включение развертывания |
|
|
Правила исходящего трафика ( |
|
|
Правила входящего трафика ( |
|
prometheus – параметры интеграции с Prometheus и сбора метрик#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение создания |
|
|
Интервал сбора метрик |
|
|
Метки, добавляемые ко всем создаваемым ресурсам |
|